Skip to main content
Every response carries an x-request-id header, including errors. Quote it when you ask us about a call — it is the only handle that reaches the whole path the request took. Error bodies follow the OpenAI shape:
Branch on code, not on message. Messages get reworded; codes do not — they are append-only, and a retired one is never reused.

Does a failed call cost me anything?

Almost never. Of the 28 errors below, 2 still produce a usage record:
  • REQUEST_CANCELLED — Request cancelled by client.
  • PARTIAL_RESPONSE_TIMEOUT — The response was cut off because the model timed out.
The reason is the same in both cases: the model had already produced output when the call came apart, so the tokens exist whether or not you received them. Everything else on this page is free of charge when it fails.

All errors

Retry? = yes means the same request may succeed later with no change on your side. A no means something about the request or the account has to change first — retrying it unchanged will fail the same way.