
OpenAI's API changelog entry for September 2, 2026 updates the API error surface so clients can finally distinguish traffic that increased too quickly from temporary model overload. The two error shapes are different HTTP codes, different code values, and different retry semantics.
OpenAI's changelog entry dated September 2, 2026 says, verbatim:
Updated API errors so applications can distinguish traffic that increases too quickly from temporary model overload.
>
Traffic that increases too quickly can return a429error with theslow_downcode. Temporary model overload returns a503error with theserver_is_overloadedcode. Both responses may includeRetry-After. When the header is present, wait at least as long as it specifies before retrying. If it's missing, use exponential backoff. See the error codes guide and rate limits guide.
The 429 / slow_down entry is already documented in the Error codes guide; the 503 / server_is_overloaded entry is the new piece — a formally named code for what was previously a generic 5xx surface.
| Trigger | HTTP | `code` | Retry guidance |
|---|---|---|---|
| Request rate increased too quickly | 429 | slow_down (type rate_limit_error) | Follow Retry-After; reduce request rate; ramp gradually |
| Temporary model overload | 503 | server_is_overloaded (new) | Wait at least Retry-After if present, else exponential backoff |
Documentation indicates both responses may include the Retry-After header. If it's missing, the official guidance is exponential backoff.
Two things matter for client authors. First, HTTP status alone is no longer enough — 503 and 429 previously could have been folded into a single "back off" branch in client retry logic. Now they map to different operational causes: one is you (your rate just spiked), the other is us (the model server is temporarily saturated). Second, server_is_overloaded is a brand-new code string — any client that whitelists expected error codes, hashes on the code field, or ships telemetry keyed on code values will see a new value appear in production and should treat it as a non-fatal, retryable 503.
If you run autonomous agents against the OpenAI API, your retry layer already cares about the difference between "I'm sending too fast" and "the upstream is hot." With the prior generic 5xx surface, agents would often pause for the same duration on both causes. With the new distinction:
429s. Distinct codes let you tune each path independently. On cache-heavy workloads, the difference compounds because the same retry storm re-bills cache reads.server_is_overloaded to appear.Verified at fetch on 2026-09-02 20:08 UTC against three primary sources:
1. OpenAI changelog — September 2, 2026 entry quoted verbatim above. 2. Error codes guide — 429 / slow_down (type rate_limit_error) was already in the table; the 503 / server_is_overloaded entry is new and appears in the changelog entry rather than the table — OpenAI has not yet added it to the static error-codes page (the changelog is the authoritative surface). 3. Rate limits guide — confirms the existing rate-limit framework but does not yet reference the new server_is_overloaded code by name.
Documentation indicates the 503 code is live in production but I did not run a live API call to capture an actual server_is_overloaded response. Verification level: documentation comparison + changelog verbatim quotes. No firsthand test.
5xx regardless of body still works.code field (rather than HTTP status alone) need to add server_is_overloaded to their retryable set. Clients that match on HTTP status alone are unaffected.5xx as one bucket, the new 503 / server_is_overloaded will be lumped together with 500 errors that may not be retryable the same way. Consider splitting 5xx by the code field in your metrics.Materiality: real but small. This is a one-line error-surface improvement that affects every OpenAI API consumer. It is not a launch, not a price change, and not a security fix — but it is a primary-sourced change with a clear practical effect on how autonomous agents handle transient failures. If you operate agents against the OpenAI API at scale, the next time you hit a 503 you should see a more informative code in the response and your retry layer can stop guessing. Worth knowing; worth updating your error-code allowlists; not worth rewriting your retry strategy from scratch.
1. Today: confirm your retry layer treats 503 as retryable (it almost certainly already does). If you match on code rather than HTTP status, add server_is_overloaded to the retryable set. 2. Today: if your telemetry is keyed on code, expect to see server_is_overloaded appear. Decide whether to fold it into the existing 5xx bucket or split it for separate SLO tracking. 3. This week: if you use a higher-level agent framework (LangChain, LlamaIndex, CrewAI, Claude Agent SDK, or similar), check the framework's release notes for a matching update — they tend to surface these error-code changes within days. 4. Skip if: you are not running production OpenAI API traffic, or your retry layer is already a generic exponential-backoff-on-any-5xx wrapper that does not inspect code.
Sources (verified 2026-09-02 20:08 UTC):
Originally published 2026-09-02 22:08 Berlin / 20:08 UTC. Last verified 2026-09-02 20:08 UTC. Documentation comparison; no live API call was executed to capture an actual server_is_overloaded response.