Anthropic API 529 "overloaded_error" in Claude Code: what it means, how long it lasts, and how to keep working
A 529 from Anthropic means the API is receiving more traffic than it can serve, across all customers, and is shedding load. It is not about your key, your plan or your request. Claude Code surfaces it as API Error: 529 overloaded_error: Overloaded, retries a few times on its own, and then stops mid-task. During the incidents that fill the GitHub threads, the error came back for hours, and it tended to hit one model: people on Opus were stuck while Sonnet answered. This entry separates the 529 from the errors that look like it, gives Anthropic's own guidance, and shows the one fix that does not depend on Anthropic recovering: Claude Code will talk to any endpoint that speaks its protocol, and there are open models that get through a coding task.
Last verified September 21, 2026 against Anthropic docs: errors, Anthropic status: Elevated error rates on Opus 4.6, March 27, 2026, anthropics/claude-code #35487: Overloaded Error (529) during Claude Code operations, anthropics/claude-code #39743: Anthropic API Error: Overloaded, anthropics/claude-code #45346: API Error: 500, anthropics/claude-code #19673: You've hit your limit while usage is at 84% · 6 min read
| Provider | Anthropic API, as used by Claude Code, the Claude Agent SDK and the Anthropic SDKs |
| HTTP status | 529, a non-standard code Anthropic uses for overload. 500 api_error often appears in the same incidents |
| Message | Overloaded, sometimes followed by a link to the errors page |
| Models | Usually one model at a time. In the March 2026 incidents it was Opus; commenters reported Sonnet still working |
| How common | 630 GitHub issues mention overloaded_error since January 2026, 117 of them in the Claude Code repository (GitHub search, September 21, 2026) |
| Can you wait it out? | Yes, but not on your schedule. Anthropic's incidents have run from twenty minutes to most of a working day |
- 529 or 500: Anthropic's problem, temporary. Check status.claude.com; if an incident is open, retrying every few seconds is wasted effort. Switch model (Opus to Sonnet) or wait.
- 429 on an API key: your organization's rate tier or spend cap. Per-minute limits clear in seconds; a spend cap does not clear until you raise it.
- "You've hit your limit": your Pro or Max window. Nothing at Anthropic will change before the reset time shown.
- To keep working through any of them: point Claude Code at another Anthropic-format endpoint with three environment variables (fix 3), then point it back.
What it looks like, and the three errors it gets confused with
API Error: 529 {"type":"error","error":{"type":"overloaded_error","message":"Overloaded"},"request_id":"req_011CZ..."}
API Error: 500 {"type":"error","error":{"type":"api_error","message":"Internal server error"},"request_id":"req_011CZ..."}
API Error: 429 {"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed your account's rate limit ..."}}
You've hit your limit · resets 4pm (Asia/Kuala_Lumpur)Four different things print in the same place in Claude Code. They have different owners and different remedies:
| What you saw | Whose problem | How long | Will retrying help? |
|---|---|---|---|
529 overloaded_error | Anthropic: traffic across all customers exceeds capacity, usually on one model | Minutes to hours. The March 27, 2026 Opus incident ran from 06:59 to 16:30 UTC | Yes, eventually. The SDKs and Claude Code already retry; when you see it, they have failed |
500 api_error | Anthropic: an internal fault | Usually under an hour | Yes, with backoff |
429 rate_limit_error on an API key | Your organization's usage tier or spend cap | Per-minute limits clear in seconds; a spend cap stays until the month resets or you raise it | Only for per-minute limits. Anthropic notes a spend-cap 429 has no retry-after header |
| "You've hit your limit · resets 4pm" | Your Pro or Max subscription window | Until the time shown, up to a week for the weekly cap | No |
Anthropic's own description of 529: "The API is temporarily overloaded. 529 errors can occur when the API experiences high traffic across all users." The same page notes that a sharp increase in your own usage can produce a 429 instead, from what it calls acceleration limits, and asks for gradual ramps.
How long it lasts
Anthropic publishes incidents at status.claude.com, and the GitHub threads link to them. The one behind the biggest Claude Code thread, Elevated error rates on Opus 4.6 on March 27, 2026, was opened at 06:59 UTC and resolved at 16:30 UTC, with a 0.4% error rate still reported as "high" in between. Others have been shorter: the April 8, 2026 incident lasted 19 minutes. There is no way to know from the error which kind you are in, which is why checking the status page first saves time.
Claude Code and the Anthropic SDKs retry 529 and 500 automatically with backoff before showing you the error. If the message reaches your terminal, those retries have already been spent.
Fix 1: change model, or wait
Overload is usually per model. /model in Claude Code switches the session to Sonnet or Haiku, which in the March incidents kept working while Opus did not. If every model is affected, the honest answer is to wait for the status page to turn green. Do not tighten a retry loop against a 529; the load is the cause.
Fix 2: if it is a 429 or a plan limit, it is not an outage
A rate_limit_error on an API key is your organization's tier: requests or tokens per minute, or the monthly spend cap. Per-minute limits clear on their own and the SDK backs off correctly; a spend cap has to be raised in the Console and returns no retry-after. The You've hit your limit · resets ... message is the Pro or Max subscription window. Several threads report it appearing with usage shown at 84%, and there is nothing to retry: the reset time is the reset time.
Fix 3: point Claude Code at another Anthropic-format endpoint
Claude Code speaks the Anthropic Messages API and nothing else, but it will speak it to any host, which is how it runs on Bedrock and Vertex. Our endpoint implements that API for open models, so the switch is a base URL, a key and a model name. Nothing is installed and nothing about the project changes.
export ANTHROPIC_BASE_URL="https://api.inferenceapis.com"
export ANTHROPIC_AUTH_TOKEN="your-inferenceapis-key"
export ANTHROPIC_MODEL="zai-org/GLM-5.3[1m]" # [1m]: tell Claude Code the window is 1M tokens
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-ai/DeepSeek-V4.1-Flash[1m]" # Claude Code's own background calls
claude
# to go back to Anthropic: unset the four variables, or open a new shellFor something you can flip per project instead of per shell, put the same variables in the project's .claude/settings.json. Remove the block, or move it to a file you keep for outages, to return to Anthropic.
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.inferenceapis.com",
"ANTHROPIC_AUTH_TOKEN": "your-inferenceapis-key",
"ANTHROPIC_MODEL": "zai-org/GLM-5.3[1m]",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-ai/DeepSeek-V4.1-Flash[1m]",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "zai-org/GLM-5.3[1m]",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek-ai/DeepSeek-V4-Pro[1m]",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}We ran this on September 21, 2026 with Claude Code 2.1.278 in headless mode: given a file with a bug and a failing test, GLM 5.3 through this endpoint ran the test, fixed the bug, re-ran it and reported done in 6 turns and 3 seconds. Claude Code prints [claude-code:unrecognized_model] on stderr for a model name it does not know; it is a note about its own price table and the run continues. Two more details from the full Claude Code guide: the [1m] suffix tells Claude Code the model's window is 1M tokens so it does not compact early, and CLAUDE_CODE_DISABLE_THINKING=1 switches the model's reasoning off for quicker routine edits.
Which model, and what it costs
None of these is Claude, and for hard problems you will feel the difference. For getting through an outage, or a locked plan window, they finish real tasks. From our test run of the same fix-the-tests task on every model (September 18, 2026), billed cost from our own logs:
| Model on Inference APIs | Our Claude Code test (fix bugs in a file, tests pass) | Billed for that run | Per 1M tokens in / out |
|---|---|---|---|
zai-org/GLM-5.3 | 6 turns, 5 s | $0.056 | $1.82 / $5.72 |
deepseek-ai/DeepSeek-V4.1-Flash | 6 turns, 5 s | $0.009 | $0.40 / $1.60 |
deepseek-ai/DeepSeek-V4-Pro | 6 turns, 19 s | $0.046 (at the previous $1.72 / $5.15 price) | $1.60 / $3.40 |
moonshotai/Kimi-K2.7-Code | 6 turns, 26 s | $0.028 | $0.89 / $4.42 |
MiniMaxAI/MiniMax-M3 | 8 turns, 19 s | $0.015 | $0.39 / $1.56 |
openai/gpt-oss-120b | 10 turns, 14 s | $0.029 | $0.20 / $0.80 |
A Max plan window that has locked you out costs nothing more to wait out; these cost cents per task and stop when you stop. Prices are flat, hosting is in the United States and nothing is stored after the response (/trust).
Frequently asked questions
Is 529 a real HTTP status code?
It is not in the HTTP standard. Anthropic uses it for overload so that it is distinguishable from 503 and from its own 500 api_error. Generic HTTP clients treat it as a server error, and the Anthropic SDKs retry it.
Does a 529 count against my usage or bill?
No. The request was not served. Retries that eventually succeed are billed once, as normal.
Will my Anthropic prompt cache survive switching endpoints and back?
No. Anthropic's cache is per organization and expires within minutes anyway; after a switch the first request rebuilds it. Our endpoint bills repeated prompt prefixes at a cached-input rate automatically, so the same effect exists on our side.
Can I keep Claude for the main model and use this only for background calls?
Not from one Claude Code process: ANTHROPIC_BASE_URL applies to every request it makes. You can run one project on each by putting the variables in that project's .claude/settings.json.
Does thinking work on these models through Claude Code?
Yes. Claude Code sends thinking: {type: "adaptive"}; the endpoint accepts enabled, adaptive and auto, keeps the model's reasoning on, and streams it as thinking blocks. The 400 "type must be in [enabled, disabled, auto]" that some hosts return does not occur here.
Where Inference APIs fits
Fix 3 is what we sell: Claude Code talks to any endpoint that speaks the Anthropic Messages API, and ours does, for DeepSeek V4, GLM 5.3, Kimi K2.7, MiniMax M3 and GPT-OSS. None of them is Claude. They did complete our Claude Code test task end to end, for cents, and they are there when Anthropic is not. Models run on GPUs in the United States with zero retention, billed per token from a prepaid balance; a new account starts with $1 of credit.
Something changed or wrong? Tell us and we will re-verify the entry.
