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