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:
- 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. - If it fails again, run
/modeland pick a different model, for example Sonnet if you were on Opus. - Look at status.claude.com, or at the provider or gateway host your error message names.
- If 529s keep breaking long or unattended runs, add a fallback model chain or a longer retry window (settings below).
- 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 by | What it tells you | First move |
|---|---|---|---|
API Error: 529 Overloaded. This is a server-side issue, usually temporary… | Claude Code, after its automatic retries | Its retries for this request ended in a 529 | Wait, try again, then /model |
✻ 529 Overloaded · Retrying in 24s · attempt 4/10 | Claude Code spinner | Still retrying; nothing has failed yet | Let it finish |
API Error: Repeated 529 Overloaded errors. The API is at capacity… | Claude Code, retries used up | Model still saturated after the retry window | Switch model or set a fallback chain |
…If it persists, check your inference gateway (host:port) | Claude Code behind ANTHROPIC_BASE_URL | The error came back through your own proxy or gateway | Check that gateway's logs and upstream |
API Error: 529 Overloaded. https://platform.claude.com/docs/en/api/errors | Claude Code, older message format | Same 529; the docs link was part of the API's message | Same as the first row |
Agent terminated early due to an API error: API Error: 529 Overloaded. | A Claude Code subagent | The subagent ran out of retries | Relaunch it; a fallback chain covers subagents |
Opus is experiencing high load, please use /model to switch to Sonnet | Claude Code (Desktop: Opus is experiencing high load. Switch to Sonnet.) | Opus specifically is saturated | Switch 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 output | Ask Claude to continue |
HTTP 529, "type":"overloaded_error", InternalServerError | Claude API and SDKs | The SDK's own retries are used up | Log the request ID, back off, try another model |
event: error with overloaded_error after HTTP 200 | Streaming API | Capacity ran out mid-stream | Handle the stream error event |
Due to unexpected capacity constraints, Claude is unable to respond… or Claude is temporarily overloaded… | claude.ai and the Claude apps | Chat-side capacity management | Wait a few minutes |
529 overloaded_error, 503 ServiceUnavailable, 429 ThrottlingException | Amazon Bedrock | AWS capacity or your AWS quota | Follow 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:
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 Overloadedis 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/errorsis 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:
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:
claude --fallback-model sonnet,haikuTo keep it across sessions, add it to your settings file:
{
"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.
/statusdoes 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:
# 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.

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:
{"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_retriesinstead 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.
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:
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-idof 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.

"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 error | Meaning | What 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 quota | Backoff and retry; check AWS service health |
ThrottlingException (429) | Your account exceeded its Bedrock quota | Check 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.
| Signal | Layer | What it means | Fix |
|---|---|---|---|
529 overloaded_error | Anthropic capacity for one model | Traffic across all users exceeds capacity | Wait, switch models, back off |
429 rate_limit_error | Your organization's API limits | RPM 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 throttle | A brief throttle unrelated to your plan | Claude Code retries it automatically from v2.1.199 |
500 api_error | Anthropic, unexpected failure | Something broke inside the API | Claude API Error 500: Fix api_error Without Blind Retries |
504 timeout_error | Anthropic, long request | The request ran too long | Use streaming or batches for long requests |
502 or 503 | Proxy, gateway, or cloud provider | Not an Anthropic API code | Check the gateway or provider |
| "Due to unexpected capacity constraints…" | claude.ai chat | Chat-side load management | Wait a few minutes |
| "5-hour limit reached" or weekly limit | Your plan | Allowance used up | Wait 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:
| Date | Incident | Impact window |
|---|---|---|
| October 6, 2026 | Elevated errors for Claude Opus 5.5 | Posted 12:24, resolved 12:43 |
| October 5, 2026 | Elevated errors for Claude Mythos 5.1 and Claude Fable 5.1 | 12:40–13:10 |
| September 29, 2026 | Elevated errors on claude.ai, Claude Code, Claude Cowork and the Claude API | 14:00–14:59 |
| September 22, 2026 | Elevated 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:
- Confirm it really is a 529. In issue #45674, repeated "529" retries turned out to hide a missing
ANTHROPIC_API_KEYin the reporter's own app. Read the status code and the errortypein the raw response before blaming capacity. - Record the request ID. Every API response carries a
request-idheader, and the Python and TypeScript SDKs expose_request_idon responses. Support needs it. - 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.
- Report it in the right place. In Claude Code, run
/feedbackwhen 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.



