code, a human-readable message, and a request_id to quote when asking for help.
string
required
The broad class of failure. Branch on this when you need coarse handling.
string
required
The specific error. This is the stable identifier — branch on it, not on the message.
string
required
Human-readable, and safe to log. Not stable across releases; never parse it.
string
Present on validation failures: the request field that was rejected.
string
required
Quote this in support tickets. It identifies the exact request in our logs.
Status codes
A
404 is returned rather than a 403 when a resource exists but belongs to a
different organization. This is deliberate: it avoids confirming that an ID is
real to a caller who cannot see it.Typed errors in the SDKs
Each SDK maps status codes onto typed errors, so you branch on a class rather than an integer.Retrying
The TypeScript, Python, and Go clients retry up to three times by default, with exponential backoff, on429 and 5xx. They do not retry 4xx errors other than 429 — those will fail again.