Skip to content

Claude 529 Overloaded Error: What It Means and How to Fix It (2026)

Claude Code retries a 529 for about 160 seconds before you see it. Capacity is per model, so switching models usually works; a 429 or 500 needs another fix.

•••17 min read•Troubleshooting
Claude 529 Overloaded cover: Opus 5.5 at full capacity with a 529 Overloaded tag, and a /model arrow switching to Sonnet 5.5, which still has headroom like Haiku 5.5

What Claude 529 Overloaded means: no capacity for that model right now

A 529 overloaded_error means Anthropic's servers have no spare capacity for the model you asked for at that moment. Anthropic's API errors reference defines it as "The API is temporarily overloaded" and adds that "529 errors can occur when the API experiences high traffic across all users." Your prompt, key, and settings did not cause it. In Claude Code it is also not your plan limit: the Claude Code error reference states that "A 529 is not your usage limit and doesn't count against your quota."

Two details change what you should do next:

  • Capacity is per model. The same reference tells you to switch models "since capacity is tracked per model." When Opus is saturated, Sonnet or Haiku often still answers.
  • The retries already happened. Claude Code retries a 529 up to 10 times before it shows an error, and the official SDKs retry twice. Hammering the same model again in the next second rarely helps.

What to do right now:

  1. Wait a minute or two, then send try again. Claude Code keeps your original message in the conversation, so you don't need to paste a long prompt again.
  2. If it fails again, run /model and pick a different model, for example Sonnet if you were on Opus.
  3. Look at status.claude.com, or at the provider or gateway host your error message names.
  4. If 529s keep breaking long or unattended runs, add a fallback model chain or a longer retry window (settings below).
  5. If your message actually says 429, 500, 504, or a usage limit, it is a different problem. The comparison table further down sends you to the right fix.

Find your exact message: which layer printed the 529

Most people arrive with a line copied from a terminal or chat window. Match the start of that line here, then read the section for that tool.

Message you see (start of line)Printed byWhat it tells youFirst move
API Error: 529 Overloaded. This is a server-side issue, usually temporary…Claude Code, after its automatic retriesIts retries for this request ended in a 529Wait, try again, then /model
✻ 529 Overloaded · Retrying in 24s · attempt 4/10Claude Code spinnerStill retrying; nothing has failed yetLet it finish
API Error: Repeated 529 Overloaded errors. The API is at capacity…Claude Code, retries used upModel still saturated after the retry windowSwitch model or set a fallback chain
…If it persists, check your inference gateway (host:port)Claude Code behind ANTHROPIC_BASE_URLThe error came back through your own proxy or gatewayCheck that gateway's logs and upstream
API Error: 529 Overloaded. https://platform.claude.com/docs/en/api/errorsClaude Code, older message formatSame 529; the docs link was part of the API's messageSame as the first row
Agent terminated early due to an API error: API Error: 529 Overloaded.A Claude Code subagentThe subagent ran out of retriesRelaunch it; a fallback chain covers subagents
Opus is experiencing high load, please use /model to switch to SonnetClaude Code (Desktop: Opus is experiencing high load. Switch to Sonnet.)Opus specifically is saturatedSwitch to Sonnet
API Error: Server error mid-response. The response above may be incomplete.Claude Code v2.1.199+An overloaded or 5xx error arrived after partial outputAsk Claude to continue
HTTP 529, "type":"overloaded_error", InternalServerErrorClaude API and SDKsThe SDK's own retries are used upLog the request ID, back off, try another model
event: error with overloaded_error after HTTP 200Streaming APICapacity ran out mid-streamHandle the stream error event
Due to unexpected capacity constraints, Claude is unable to respond… or Claude is temporarily overloaded…claude.ai and the Claude appsChat-side capacity managementWait a few minutes
529 overloaded_error, 503 ServiceUnavailable, 429 ThrottlingExceptionAmazon BedrockAWS capacity or your AWS quotaFollow the Bedrock row in the gateway section

"API Error: 529 Overloaded" in Claude Code, line by line

This is the line most people paste into a search box:

text
API Error: 529 Overloaded. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.

Read it piece by piece:

  • 529 Overloaded is the HTTP status code plus the API's own error message. Claude Code prints the status code and the API's message for any 5xx response, so a 500 looks the same with different words.
  • "a server-side issue" means the failure sits with Anthropic, or with the provider your session goes through. The reference says a 5xx from the API "is not caused by your prompt, settings, or account."
  • "usually temporary — try again in a moment" is true, but Claude Code has already retried before showing you this. "A moment" in practice means a minute or more, not an instant resend.
  • "If it persists, check https://status.claude.com" points at Anthropic's status page. If your line names a different host or cloud provider instead, that is where your requests go, and that is the status page to check.

Variants you may see:

  • A leading ● or ⏺ is just the bullet Claude Code draws in front of transcript entries.
  • API Error: 529 Overloaded. https://platform.claude.com/docs/en/api/errors is an older format. In March and April 2026 the API's overload message itself carried a docs link ("message":"Overloaded. https://docs.claude.com/en/api/errors" in GitHub issue #39767), and Claude Code printed it after the status code. The fix is the same.
  • If the 529 line is wrapped in "Something went wrong. Try sending your message again", an app is showing the same API error inside its own notice. The 529 part is what matters.
  • Scheduled tasks and subagents fail with the same text. A subagent reports Agent terminated early due to an API error: API Error: 529 Overloaded., and its partial work does not come back to the parent session (issue #89267), so plan to relaunch it.

What to do: wait a minute, then send try again. If the second attempt also fails, switch models with /model rather than waiting on the same one.

"✻ 529 Overloaded · Retrying in 0s · attempt 4/10": still retrying

The spinner line means the request has not failed yet. Claude Code shows Retrying in Ns · attempt x/y while it backs off between attempts. According to the error reference, the label reads API error for the first attempts and, from v2.1.198, switches to the specific reason, such as 529 Overloaded, on the third attempt. For a 529, the line under the countdown names where to check status. A Retrying in 0s line that stayed on screen after the request had already succeeded was a display bug fixed in v2.1.181.

How long Claude Code keeps trying by default is easy to work out from the documented defaults: 10 retries, a 500 ms starting delay, and a 32 s ceiling (Tune retry behavior). With the delay doubling each time:

0.5 + 1 + 2 + 4 + 8 + 16 + 32 + 32 + 32 + 32 = 159.5 seconds, or about 2 minutes 40 seconds.

A community analysis of the v2.1.220 build (issue #81330) reads the same formula plus 0–25% random jitter, which would stretch the window to about 200 seconds. The same analysis reported that API-key sessions on Opus-, Fable-, and Mythos-class models gave up after three 529s even though the counter showed /10. That is one user's reverse-engineering of an older build, not documented behavior.

The practical consequence: any capacity problem that lasts longer than about three minutes outlasts the default window. Every message you send during that time fails the same way, which is why a 529 can feel like it "never recovers." Switching models, or giving the session a longer window, works better than resending.

"Repeated 529 Overloaded errors": after Claude Code gives up

This is the message Claude Code shows once its retries are exhausted:

text
API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

The reference adds that "Claude Code has already retried several times before showing this message." You have three options, depending on whether you are at the keyboard.

Switch models with /model

Run /model and choose another model. As of October 2026, the aliases on the Anthropic API point to opus → Opus 5.5, sonnet → Sonnet 5.5, and haiku → Haiku 5.5 (model configuration). When one model is under especially high load, Claude Code prompts you itself with Opus is experiencing high load, please use /model to switch to Sonnet; on Fable models the prompt names Fable. In the Claude Desktop Code tab or Cowork, the prompt reads Opus is experiencing high load. Switch to Sonnet. and you switch with the model picker.

Add a fallback model chain

A fallback chain lets Claude Code switch for you when the primary model is overloaded or unavailable. For one session:

bash
claude --fallback-model sonnet,haiku

To keep it across sessions, add it to your settings file:

json
{
  "fallbackModel": ["sonnet", "haiku"]
}

Limits worth knowing before you rely on it (Fallback model chains):

  • Chains are capped at three models, and entries can be aliases or full model names. Pick models that differ from your primary.
  • The switch lasts for the current turn only. Your next message tries the primary model first again.
  • Rate-limit, authentication, billing, and request-size errors never trigger a switch. A fallback chain does nothing for a 429.
  • /status does not show the chain. The first sign it is configured is the notice when a switch happens.
  • Subagents use the chain from v2.1.247, and compaction uses it from v2.1.178, but compaction never falls back to a model with a smaller context window.

Older advice says Opus falls back to Sonnet on overload automatically. Today that only happens if you configured a chain or follow the high-load prompt. The separate "automatic model fallback" in the docs reacts to safety-classifier refusals, not to capacity.

Give long or unattended runs a longer retry window

When you would rather wait out the overload than switch models, raise the backoff. These environment variables come from the error reference and need recent versions:

bash
# Spread 529 retries over a longer window (v2.1.292+ and v2.1.296+)
export CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS=2000   # default 500, max 32000
export CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS=64000   # default 32000, max 64000
export CLAUDE_CODE_MAX_RETRIES=15                        # default 10, capped at 15

# CI and other unattended jobs: keep retrying 429/529 until capacity returns
export CLAUDE_CODE_RETRY_WATCHDOG=1
export CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS=1800000    # optional ceiling, v2.1.295+

With the first two values, the waits become 2 + 4 + 8 + 16 + 32 + 64 × 5 = 382 seconds for 10 retries, about 6.4 minutes before any jitter. Allowing 15 retries adds five more 64-second waits, for 702 seconds, close to 12 minutes. That is how long a single message can sit retrying, so keep these values for sessions where waiting is acceptable.

Bar chart of Claude Code's 529 retry waits: the default schedule from 0.5 to 32 seconds totals 159.5 seconds, compared with 382 seconds after raising the start delay to 2 s and the cap to 64 s, and 702 seconds with 15 retries

CLAUDE_CODE_RETRY_WATCHDOG=1 is meant for CI and other unattended sessions. It retries 429 and 529 capacity errors indefinitely, raises other transient retries to 300 (roughly three hours), and lifts the cap of 15. From v2.1.239 it stops at once on a spend-limit or out-of-credits 429, and the two overload delay variables have no effect while it is set. The 30-minute ceiling above (1,800,000 ms) is an example value, not a recommendation from the docs.

Anthropic has been adding retry variables every few weeks, so check claude --version against the version noted beside each one.

Claude API and SDK 529: overloaded_error and InternalServerError

A direct API call that hits a 529 returns this body, with the same ID in the request-id response header:

json
{"type":"error","error":{"type":"overloaded_error","message":"Overloaded"},"request_id":"req_..."}

The official SDKs retry connection errors, 408, 409, 429, and all 5xx responses twice by default, with exponential backoff and respect for retry-after (Python SDK retries). The Python and TypeScript SDKs have no dedicated overload exception. A 529 falls under >=500, so you see InternalServerError with status_code == 529 after those retries are used up.

Two habits make 529s worse:

  • Stacking retry loops. Five attempts in your own loop around an SDK that makes three attempts per call is up to 15 requests into a saturated model. Raise max_retries instead of wrapping it, or turn SDK retries off and own the loop.
  • Retrying only the same model. Because capacity is per model, a second model is often the faster way out.

This Python example lets the SDK handle backoff, then moves to a second model only after a 529 survives those retries. It assumes ANTHROPIC_API_KEY is set.

python
import anthropic

client = anthropic.Anthropic(max_retries=4)  # SDK default is 2

MODELS = ["claude-opus-5-5", "claude-sonnet-5-5"]  # primary, then fallback


def ask(messages):
    last_error = None
    for model in MODELS:
        try:
            return client.messages.create(
                model=model,
                max_tokens=1024,
                messages=messages,
            )
        except anthropic.RateLimitError:
            raise  # 429 is your rate limit, not Anthropic's capacity
        except anthropic.APIStatusError as e:
            if e.status_code != 529:
                raise
            print("529 on", model, "request-id:", e.response.headers.get("request-id"))
            last_error = e
    raise last_error


reply = ask([{"role": "user", "content": "Hello, Claude"}])
print(reply.content[0].text)

The fallback model changes cost as well as quality. Opus 5.5 lists at $4/$20 per million input/output tokens and Sonnet 5.5 at $2/$10 (models overview). Older samples that use claude-sonnet-4-6 still run, but that model is now listed as legacy. For current Opus IDs, see Claude Opus 5.5: API price, model ID, and migration checks.

529 during streaming

With streaming, the API can return HTTP 200 and then send an error event partway through:

text
event: error
data: {"type": "error", "error": {"type": "overloaded_error", "message": "Overloaded"}}

The streaming docs say this "would normally correspond to an HTTP 529 in a non-streaming context." Your stream handler has to catch it, because the HTTP status already said success. Third-party clients print their own wording for this case, such as anthropic stream error (overloaded_error): Overloaded or "failed to sample … overloaded". Those strings are not Anthropic's. If the underlying type is overloaded_error, treat it as a 529.

Reduce how often a 529 stops your app

  • Ramp traffic gradually. Since August 11, 2025, a sharp jump in your own organization's usage can return a 429 from acceleration limits, where it used to produce a 529 (release notes). Smooth ramps avoid those 429s, though they can't prevent a 529 caused by everyone else's traffic.
  • Keep a second model ready, as in the example above, and log the request-id of every 529.
  • Use streaming for long requests, so a slow response doesn't also run into a timeout.
  • Don't plan on Priority Tier. Older advice suggests buying it to reduce overload errors. The service tiers page now says "Priority Tier capacity commitments are no longer available for purchase," and it does not support Opus 5.5, Sonnet 5.5, Haiku 5.5, or Fable 5.1. If you need guaranteed capacity, the page points you to Anthropic sales.

Bedrock, Google Cloud, and gateways: whose capacity ran out?

Anthropic's own API lists 500, 504, and 529 as its server-side errors. It does not list 502 or 503. When you see those, a proxy, load balancer, gateway, or cloud provider in front of the model produced them.

Diagram matching the end of a Claude Code error line to the service to check: status.claude.com for the Anthropic API, the provider status page for Bedrock, Google Cloud or Foundry, and the gateway logs for an inference gateway running on your own machine or network

"Check your inference gateway." When Claude Code runs with a custom ANTHROPIC_BASE_URL, the last sentence of its error names that gateway host instead of status.claude.com, for example If it persists, check your inference gateway (127.0.0.1:8787). That address is your own proxy or LLM gateway, not Anthropic. Check its logs and its upstream provider first. Claude Code pointed these errors at status.claude.com until v2.1.143 fixed the message.

Amazon Bedrock. AWS documents three different capacity answers (Bedrock API error codes):

Bedrock errorMeaningWhat to do
overloaded_error (529)The model lacks serving capacity right now; "different from a 429 ThrottlingException"Backoff with jitter, honor Retry-After, try cross-Region inference
ServiceUnavailable (503)Temporary high demand on the service, not your account quotaBackoff and retry; check AWS service health
ThrottlingException (429)Your account exceeded its Bedrock quotaCheck Service Quotas, request an increase

Bedrock capacity belongs to AWS, so status.claude.com can be green while Bedrock returns 529. AWS asks for the request ID, model ID, Region, and timestamp if you contact AWS Support.

Google Cloud. On Google Cloud, Claude capacity problems arrive as a 429, not a 529: "Resource exhausted, please try again later." on pay-as-you-go, or a Provisioned Throughput message (Google Cloud 429 guide). For Claude Code, Anthropic suggests making sure the model is available in your region and trying CLOUD_ML_REGION=global.

"Claude is temporarily overloaded": capacity messages on claude.ai

If you are chatting on claude.ai or in the desktop or mobile app rather than using Claude Code or the API, the official capacity message is:

"Due to unexpected capacity constraints, Claude is unable to respond to your message. Please try again soon."

Anthropic's Help Center article Troubleshoot Claude error messages says capacity constraints "are not outages," that they are temporary, and that they "will not appear on our status page" because they are normal load management. Try again in a few minutes.

You may also see "Claude is temporarily overloaded. Try again in a moment, or check status.claude.com for updates." That wording does not appear in the Help Center or the Claude Code reference, so its exact source is unclear. Handle it the same way: wait a few minutes, then look at the status page if it continues.

Usage limits look different. "5-hour limit reached - resets [time]" and "You've reached your weekly limit. It resets [day] at [time]" mean your plan's allowance is used up, and waiting a few minutes won't fix them. If that is what you see, Claude Code weekly limits explains how those windows work. Anthropic has not said whether failed capacity attempts on claude.ai count toward chat usage. The "doesn't count against your quota" sentence comes from the Claude Code documentation only.

529 vs 429 vs capacity constraints vs usage limits

Several "you can't continue right now" messages look alike but need different fixes.

SignalLayerWhat it meansFix
529 overloaded_errorAnthropic capacity for one modelTraffic across all users exceeds capacityWait, switch models, back off
429 rate_limit_errorYour organization's API limitsRPM or token limits, an acceleration limit, or a spend cap (spend-cap 429s have no retry-after)How to Fix Claude API 429 Rate Limit Error; review Claude API quota tiers and limits
Server is temporarily limiting requests (not your usage limit)Claude Code, short API throttleA brief throttle unrelated to your planClaude Code retries it automatically from v2.1.199
500 api_errorAnthropic, unexpected failureSomething broke inside the APIClaude API Error 500: Fix api_error Without Blind Retries
504 timeout_errorAnthropic, long requestThe request ran too longUse streaming or batches for long requests
502 or 503Proxy, gateway, or cloud providerNot an Anthropic API codeCheck the gateway or provider
"Due to unexpected capacity constraints…"claude.ai chatChat-side load managementWait a few minutes
"5-hour limit reached" or weekly limitYour planAllowance used upWait for the reset or use usage credits

The 529 and 429 distinction matters most in automation. A 529 is about everyone's traffic on that model, so slowing down your own client does little beyond avoiding retry storms. A 429 is about your traffic, so reducing concurrency and honoring retry-after is the fix.

Check status first: how to verify a real Anthropic incident

status.claude.com lists six components as of October 14, 2026: claude.ai, Claude Console (platform.claude.com), Claude API (api.anthropic.com), Claude Code, Claude Cowork, and Claude for Government. For scripts and alerts, the same data is available as JSON at https://status.claude.com/api/v2/summary.json and https://status.claude.com/api/v2/incidents.json. You can also subscribe by email, SMS, Slack, Microsoft Teams, webhook, or RSS/Atom.

Incident titles say "elevated errors," not "529," and they usually name specific models. Recent examples from the incident feed, in UTC:

DateIncidentImpact window
October 6, 2026Elevated errors for Claude Opus 5.5Posted 12:24, resolved 12:43
October 5, 2026Elevated errors for Claude Mythos 5.1 and Claude Fable 5.112:40–13:10
September 29, 2026Elevated errors on claude.ai, Claude Code, Claude Cowork and the Claude API14:00–14:59
September 22, 2026Elevated errors for multiple models (Mythos 5.1, Fable 5.1, Opus 5)00:50–02:10

Most of these hit one or a few models while others kept working, which is why switching models is the most useful first move.

A green status page does not prove your 529 is local. Not every capacity spike gets an incident post: the Help Center says chat capacity constraints never appear there, and on October 1, 2026, a Claude Code user reported a 529 on the very first request of a session while the web app worked (issue #98727). If you reach Claude through Bedrock, Google Cloud, or Microsoft Foundry, check that provider's status page instead.

Troubleshooting: what to do when 529 keeps coming back

If switching models and waiting a few minutes don't help, collect these details before you change any code:

  1. Confirm it really is a 529. In issue #45674, repeated "529" retries turned out to hide a missing ANTHROPIC_API_KEY in the reporter's own app. Read the status code and the error type in the raw response before blaming capacity.
  2. Record the request ID. Every API response carries a request-id header, and the Python and TypeScript SDKs expose _request_id on responses. Support needs it.
  3. Note the model, time, and connection path. Write down the model, the time in UTC, and whether the request went direct, through a gateway, or through a cloud provider. A 529 on one model at one time points to capacity. A 529 on every model, every time, points to your gateway, provider, or setup.
  4. Report it in the right place. In Claude Code, run /feedback when errors persist with no posted incident, so Anthropic gets your session details. For the API, contact support with the request ID. For Bedrock, AWS Support wants the request ID, model ID, Region, and timestamp.

Claude 529 FAQ: duration, billing, plans, and retries

Is Claude 529 overloaded error my fault?

Usually not. A 529 means the model you called is out of spare capacity across all users. The exceptions are setups where a proxy, gateway, or your own app produces or masks the error, so check that the status code and overloaded_error type come from Anthropic's API.

How long does a 529 error usually last?

Anthropic publishes no typical duration. Posted incidents from September and October 2026 ran from about 20 minutes to about 80 minutes. Capacity spikes that never get an incident post have no published duration at all. Claude Code's default retries cover only about 160 seconds, so longer events need a model switch or a longer retry window.

Does a 529 count against my Claude usage limit?

In Claude Code, no: "A 529 is not your usage limit and doesn't count against your quota." For claude.ai chat, Anthropic hasn't published an equivalent statement.

Am I charged for a 529 overloaded request?

Anthropic's pricing and error docs don't say. A rejected request generates no output, and whether its input is billed isn't documented. A stream that fails mid-response may already have generated tokens. To be sure, look up the request ID in your Console usage data.

Does a Max or Pro plan protect me from 529 errors?

No plan is documented as getting priority during overload. Max subscribers report 529s too, for example in issue #39767. Priority Tier, the API's old capacity option, is no longer sold.

Should I retry immediately?

Not by hand. Claude Code and the SDKs have already retried with backoff by the time you see the error. Wait a minute, or switch models, before resending.

Is 529 the same as 429?

No. A 529 is Anthropic's capacity for a model, and a 429 is your own rate limit or quota. Since August 2025, a sudden spike in your own traffic can return a 429 where it once produced a 529. On Google Cloud, capacity problems arrive as 429 "Resource exhausted."

Is a 529 in Claude Code different from a 529 in the API?

The server signal is identical. Claude Code adds up to 10 automatic retries, a fallback chain option, and the "Repeated 529" message when it gives up. The SDKs retry twice and then raise InternalServerError with status 529.

Why is Claude chat broken but the status page looks normal?

The Help Center says capacity constraints on claude.ai are normal load management and "will not appear on our status page." Only real incidents get posted.

Found an error, or hit a problem this article does not cover? Send the article URL and what you saw to hi@laozhang.ai. We check it and update the article.