codeis stable. Branch on it.messageis a sentence for logs. Its wording may change.request_idis also in theX-Request-Idheader. Quote it when you contact [email protected].detailsis present only when there is more to say (table below).
Cache-Control: no-store.
Codes
Retrying
Retry429, 500 and 503 with backoff (respect Retry-After; else 1 s, 2 s, 4 s… up to a minute). Other 4xx errors fail again until the request changes.
POST /leads is safe to retry: a repeat of an enquiry that was already saved returns 200 {"status": "duplicate"}.
In browser JavaScript, cross-origin responses do not expose
Retry-After or X-Request-Id to your code. Use error.request_id from the body, and wait 60 seconds after a 429 (limits reset each clock minute). Server-side code can read every header.