---
title: "Duplicate Booking After Retry Troubleshooting"
description: "Identify duplicate travel bookings created after timeout/retry, preserve the correct reservation and apply safe compensation."
slug: "duplicate-booking-after-retry-troubleshooting"
translationKey: "troubleshooting-duplicate-booking-after-retry"
locale: "en"
type: "troubleshooting"
category: "troubleshooting"
tags: ["duplicate-booking","retry","idempotency","booking","debugging"]
publishedAt: "2026-09-27"
updatedAt: "2026-09-27"
reviewedAt: "2026-09-27"
technicalVerifiedAt: "2026-09-27"
codeExampleStatus: "illustrative"
---

Duplicate bookings often appear when a second create is issued after the first attempt ended UNKNOWN. First determine **which reservation represents the original intent and which one needs compensation**.

## Symptom

Two provider references for the same traveler/itinerary, duplicate confirmations, duplicate payment attempts, or multiple create attempts under one bookingIntentId.

## Possible causes

Blind retry after timeout, regenerated idempotency keys, no provider idempotency, expired distributed locks, manual duplicate creation or client double-submit.

## Diagnosis

Build a timeline of all attempts, compare bookingIntentId/idempotency keys, provider references and confirmation times, correlate payments, collect cancellation penalties and verify whether the traveler actually intended multiple bookings.

## Recovery

Preserve the canonical booking, validate provider-specific cancellation rules for the duplicate, compensate duplicate payment where needed, and retain linked duplicate evidence for audit rather than deleting history.

## Prevention

Use persistent idempotency, unique constraints, UNKNOWN retry blocking, client double-submit protection, operations warnings and provider/client-reference lookup.

## Observability

Track duplicate provider references, blocked duplicate attempts, same-intent multi-create, duplicate payments and retry-induced cancellation cost.
