Skip to main content
Every failure the API can produce, and how to tell them apart.

The document

Failures are RFC 9457 problem documents, served as application/problem+json:
code is the stable field: match on it, never on title or detail, which are written for humans and may be reworded. traceId matches the server log line for the same request, which is what makes a user-reported failure findable.

Codes

Unknown failures

A response that is not a problem document — a proxy’s HTML 502, for instance — surfaces as a transport error rather than an ApiError. Treat it as retryable and do not attempt to parse it.

Transport errors are not HTTP errors

A request that never completes raises network_error, which is deliberately not an error code: it describes the call, not the server’s answer, and it has no status.
Last modified on October 6, 2026