Duplicate Booking After Retry Troubleshooting
Identify duplicate travel bookings created after timeout/retry, preserve the correct reservation and apply safe compensation.
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.
Are you facing this in production?
We can review the symptom, data flow and integration behavior technically.