# `flights.offer_expired` — Offer expired

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

## When it happens

The offer's validity window (`expiresAt`) has passed, or the airline no longer recognises it. Fares change constantly, so offers are short-lived.

## What to do

Search again. Price (`POST /flights/offers/{offerId}/price`) and hold soon after searching.

## Example response

```json
{
  "type": "https://quickota.com/developers/errors/flights.offer_expired",
  "title": "Offer expired",
  "status": 410,
  "code": "flights.offer_expired",
  "detail": "The offer\u0027s validity window (\u0060expiresAt\u0060) has passed, or the airline no longer recognises it. Fares change constantly, so offers are short-lived.",
  "suggestion": "Search again. Price (\u0060POST /flights/offers/{offerId}/price\u0060) and hold soon after searching.",
  "retryable": false,
  "requestId": "req_7f3a2c9e41d0b8a6c5e21f90"
}
```

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