# `flights.offer_already_booked` — Offer already used for a booking

**HTTP status:** 409  
**Retryable:** no — change the request or the flow first

## When it happens

Each offer can be held once. This one already produced a booking (see `context.bookingId`). A retry of the same hold should reuse the same `Idempotency-Key`, which returns the original booking instead of this error.

## What to do

Use the existing booking, or search again for a new offer.

## Example response

```json
{
  "type": "https://quickota.com/developers/errors/flights.offer_already_booked",
  "title": "Offer already used for a booking",
  "status": 409,
  "code": "flights.offer_already_booked",
  "detail": "Each offer can be held once. This one already produced a booking (see \u0060context.bookingId\u0060). A retry of the same hold should reuse the same \u0060Idempotency-Key\u0060, which returns the original booking instead of this error.",
  "suggestion": "Use the existing booking, or search again for a new offer.",
  "retryable": false,
  "requestId": "req_7f3a2c9e41d0b8a6c5e21f90"
}
```

See [Errors](https://quickota.com/developers/guides/errors) for how to handle errors in general.
