529 overloaded_error

529 overloaded_error on Claude Fable 5

The API is temporarily overloaded. Nothing in your request or your account caused it, and backoff is the only real fix.

The 30-second version

529 is overloaded_error: Anthropic's API is temporarily at capacity, usually because of high traffic across all customers. It is not your rate limit and it does not count against your quota. Retry with exponential backoff, check status.claude.com if it persists, and keep a second model ready, because the server-side fallbacks parameter does not cover overload.

What actually causes a 529

All four causes sit on Anthropic's side of the connection. None of them are fixed by changing your payload.

  • Long Fable 5 turns widen the exposure window

    Individual Fable 5 requests on hard tasks can run for many minutes at higher effort. The longer a request is in flight, the more likely it overlaps a capacity event, and a mid-stream overload arrives after the 200 has already been returned.

  • There is no advance warning header

    Unlike a 429, an overload gives you no remaining-capacity headers to watch. You cannot predict a 529 from response metadata, which is why the handling has to be reactive backoff rather than proactive throttling.

  • Demand concentrated on one model

    Capacity is tracked per model, so Fable 5 can be saturated while Opus 5 and Sonnet 5 serve normally. Claude Code makes this explicit, prompting you to run /model and switch when one model is under particularly high load.

  • Platform-wide capacity, not your account

    529 errors occur when the API experiences high traffic across all users. Your organization's tier, spend limit and rate limits are irrelevant to whether you see one. Two customers with completely different usage patterns will see 529s in the same window.

Fix in this order

Steps one and two cover almost every case. Steps three to five are for sustained incidents and unattended jobs.

  1. 1

    1. Retry with exponential backoff

    Retry the request with an exponentially growing delay and jitter. The official SDKs already do this twice by default for 5xx responses; raise the client's maximum-retries option rather than writing a second retry layer around it, which multiplies attempts instead of extending them.

  2. 2

    3. Check the status page before escalating

    Confirm at status.claude.com whether an incident is posted. On other configurations, check the provider or gateway host named in the error message. If the errors persist with no posted incident, open a support ticket and include the request_id from the error body.

  3. 3

    2. Do not retry immediately or in lockstep

    A tight retry loop makes a capacity event worse and burns your request-per-minute budget for nothing. Add jitter so a fleet of workers does not synchronize its retries into a thundering herd against an already-saturated model.

  4. 4

    4. Fail over to another model yourself

    Because capacity is tracked per model, routing to claude-opus-5 usually gets a response during a Fable 5 capacity event. This is code you write: the fallbacks parameter only fires on a safety classifier decline, never on an overload.

  5. 5

    5. In Claude Code, extend the retry budget for unattended runs

    Claude Code already retries transient failures up to 10 times with exponential backoff, controlled by CLAUDE_CODE_MAX_RETRIES. For CI jobs and eval harnesses, set CLAUDE_CODE_RETRY_WATCHDOG to 1 so 429 and 529 capacity errors retry indefinitely instead of failing the run.

Rule out a rate limit first

If the errors are actually 429s rather than 529s, the fix is completely different and it is on your side. Check which one you are getting before you tune backoff.

Frequently asked questions