Retryable Error
An error whose cause may resolve on its own, which a client may safely attempt again — as distinct from one that will fail identically.
Clients must be able to distinguish the two from the response alone, or they either retry pointlessly (wasting capacity during an incident) or fail permanently on something transient.
Retryable: 408, 429, 502, 503, 504, connection failures and timeouts. Not retryable: 400, 401, 403, 404, 422 — the request will fail identically until it changes. Ambiguous: 409 depends on the conflict; 500 may be transient or deterministic, which is why returning 500 for a validation failure is actively harmful.
Beyond the status code, two things help: an explicit retryable flag or error type in the body, and
Retry-After where a wait is appropriate.
And the case that matters most: an error on a non-idempotent operation is not safely retryable at all unless an idempotency key was used, whatever the status code says.