Back to guides
Troubleshooting·September 15, 2026·6 min read

Claude API 529 overloaded_error — Meaning and Correct Handling

529 is the only Claude error not caused by your code. Anthropic is overloaded and you cannot fix it. You can only handle it cleanly — persistent retries with exponential backoff, fallback models for latency-sensitive paths, and no immediate retry storm that worsens the outage. Those three measures are all you can do.

529 is the only Claude error not caused by your code. Anthropic is overloaded and you cannot fix it. You can only handle it cleanly — persistent retries with exponential backoff, fallback models for latency-sensitive paths, and no immediate retry storm that worsens the outage. Those three measures are all you can do.

The error

Response (HTTP 529)
{
  "type": "error",
  "error": { "type": "overloaded_error",
             "message": "Overloaded" }
}

Causes and fixes at a glance

CauseFix
Provider-side congestion (new model release day, regional outage). It affects all users simultaneously.Wait with jittered backoff. Check Anthropic’s status page instead of redeploying the application.
Your burst traffic overlapped with capacity that was already strained.Spread batch processing over time. Delaying it by 10 minutes usually resolves the issue.
Confusing it with 429. They look similar in logs, but the causes are entirely different.429 means you exceeded your limit while the server is healthy; 529 means the server is overloaded while your balance and limit are fine. Only 429 includes Retry-After.
No fallback was defined, so the provider problem reaches end users directly.Define the fallback order in advance. Same-family fallback (Sonnet → Haiku) behaves similarly; cross-provider fallback (Claude → GPT) can survive a provider-wide outage.

Retry without making the outage worse

Treat 529 as “429 without Retry-After.” Use exponential backoff starting at about 2 seconds, with jitter, capped at 30–60 seconds; give up after roughly five attempts and move the work to a queue. The part that matters is the jitter. Without it, every client comes back at the same moment and prolongs the congestion you were trying to escape.

Redirect instead of dropping

Prepare a fallback chain for latency-sensitive paths. With an OpenAI-compatible endpoint, you change only one string — there is no need to add an SDK or create another account:

failover.py
PREFERRED = ["claude-sonnet-5", "claude-haiku-4-5", "gpt-5-6-terra"]

def complete(messages):
    last = None
    for model in PREFERRED:
        try:
            return client.chat.completions.create(
                model=model, messages=messages, max_tokens=800)
        except APIStatusError as e:
            if e.status_code not in (429, 500, 529):
                raise
            last = e          # 過負荷 — 次の候補へ
    raise last

Question your own code last

If only a specific request type returns 529 while other calls at the same time succeed, it is not a system-wide outage. Check whether that path is sending an unusually large prompt or firing requests in a tight loop. Conversely, if all calls return 529 at once and then recover on their own, the cause is capacity. In that case, fix retries and fallbacks, not the refactoring.

If you’re calling through Kunavo

Kunavo routes Claude through multiple upstream paths, and its multi-model catalog makes cross-provider fallback as simple as “change only the model name while keeping the same key and balance.” You do not need a second account for the code above. Any 529 that does occur is not billed. Capacity and pricing are separate issues. For the latter, see the per-model rates in Claude API pricing.

Frequently asked questions

Is 529 my fault?

No. It is a capacity issue on the provider’s side. Your responsibilities are limited to two things — not amplifying the outage (backoff and jitter), and having somewhere to redirect requests when the outage exceeds your latency budget.

What is the difference between 529 and 429?

429 means you exceeded your own limit while the server is healthy. 529 means the server is overloaded while your limit and balance are healthy. Both can be retried, but only 429 includes a Retry-After hint.

How long does 529 usually last?

It cannot be predicted or guaranteed. That is why the correct approach is capped backoff plus a queue, not hard-coding a fixed wait time. If the path has a latency budget, fallback should take over instead of waiting.

Are calls that fail with 529 billed?

Not through Kunavo. Requests that end in an error are not billable. With a direct contract, follow each provider’s billing rules.

Related guides

More error semantics live in the error reference; getting a key takes a minute via signing up and the authentication guide.