Claude Code "529 Overloaded" Error: What It Means and What to Do
"API Error: Repeated 529 Overloaded errors" means Anthropic's API is at capacity for the model you're using — not that you did anything wrong or used up your plan. What a 529 is, how it differs from a 429, and the fixes: wait, switch model, and the retry settings for unattended runs.
You're mid-task and Claude Code stops with:
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.
or a friendlier variant like "Opus is experiencing high load, please use /model to switch to Sonnet".
A 529 means Anthropic's servers are busy, not that you did something wrong. It doesn't count against your usage quota, and nothing is broken on your machine.
529 vs 429
They look similar but mean different things:
| Code | Meaning | Whose limit |
|---|---|---|
| 529 Overloaded | The API is at capacity right now | Anthropic's, shared by everyone |
| 429 Too Many Requests | You're sending requests faster than you're allowed | Yours — your rate limit or plan |
Claude Code retries both automatically before showing you an error. If you see the message, those retries already failed. (What a 429 means in general)
What to do
- Wait a minute and try again. Type
try againrather than pasting your long prompt back in. Most 529s clear in minutes. - Check status.claude.com. If there's an incident, there's nothing to fix on your side.
- Switch model. Capacity is tracked per model, so if Opus is overloaded, Sonnet often isn't:
/model sonnet
Switch back later with /model opus (or /model default).
For unattended and scripted runs
If Claude Code runs headless — in CI, a scheduled job or a long claude -p script — a 529 at 3 a.m. can kill the run. Two environment variables help:
# Keep retrying 429 and 529 errors indefinitely (for unattended runs)
export CLAUDE_CODE_RETRY_WATCHDOG=1
# Start the 529 backoff at 5 seconds instead of 0.5 (max 32000 ms)
export CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS=5000
The base-delay variable needs Claude Code 2.1.292 or later. A newer setting, CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS, caps how long the watchdog waits, so a job eventually fails instead of hanging forever. (Running Claude Code Headless)
Things that won't help
- Reinstalling Claude Code. The error comes from the API, not your install.
- Logging out and in. Authentication isn't the problem.
- Upgrading your plan. A 529 is about total capacity, not your allowance.
If it happens constantly
- Make sure Claude Code is up to date (
claude update), so you have the latest retry behaviour. (How to Update Claude Code) - Run long, non-urgent jobs outside peak hours for your region's working day.
- For API-key users building apps, add retries with exponential backoff to your own code. (Exponential Backoff and Jitter)
The summary
- 529 = Anthropic's API is busy. Not your fault, not your quota.
- Wait, check the status page, or
/modelto a different model. - For unattended runs, set
CLAUDE_CODE_RETRY_WATCHDOG=1.
EasySpawn runs Claude Code on a server that stays on, so a long job that hits a temporary 529 can wait it out and carry on while you're away. See how it works or join the waitlist.
Related: Claude Code Troubleshooting · Claude Code Usage Limits · How to Change the Model in Claude Code · HTTP Status Codes Explained
Keep reading
Claude Code "Prompt Is Too Long": Why It Happens and How to Fix It
"Prompt is too long" and "Context limit reached" mean the conversation no longer fits in the model's context window. What fills it up, how to see what's using space with /context, and the fixes: /compact, /clear, smaller reads, fewer MCP tools and better session habits.
Playwright MCP: Let Claude Code Use a Real Browser
The Playwright MCP server lets AI tools open pages, click, type and read a live browser through accessibility snapshots instead of screenshots. How to add it to Claude Code, useful prompts for testing and debugging, key options like headless and isolated, and its limits.