Anthropic API Error overloaded_error: API temporarily overloaded (529)
Anthropic’s API is briefly out of capacity across all users; your request and your limits are fine. Retry with exponential backoff, and fall back to another model if it persists.
Identify: does your log match?
anthropic.InternalServerError: Error code: 529 - {"type": "error", "error": {"type": "overloaded_error", "message": "Overloaded"}, "request_id": "req_011CUQ5bJ7xVwKp3oRz9TnYd"}- High
Provider-wide capacity spike
Demand for a model exceeds available capacity for a few seconds or minutes. It is not tied to your organization’s usage.
- Medium
Retries disabled or too few
Clients created with maxRetries: 0, or wrapped in a job queue that fails fast, surface a transient 529 as a hard error.
- Low
Synchronous fan-out at peak times
Batch jobs that fire hundreds of parallel calls during peak hours hit overloads more often than the same work spread out.
Fix
Let the SDK retry with backoff
const client = new Anthropic({ maxRetries: 0 }); const msg = await client.messages.create(req);
const client = new Anthropic({ maxRetries: 5 }); // backoff on 408, 409, 429 and 5xx incl. 529 const msg = await client.messages.create(req);
The official SDKs already retry with exponential backoff (2 retries by default). Raising the count rides out short overloads without custom code.
Verify: reproduce it on purpose
$ node -e 'require("http").createServer((q,s)=>{s.writeHead(529,{"content-type":"application/json"});s.end(JSON.stringify({type:"error",error:{type:"overloaded_error",message:"Overloaded"}}))}).listen(8529)' &
ANTHROPIC_BASE_URL=http://localhost:8529 node your-script.jsRun it against a dev environment to trigger overloaded_error on purpose and test your error handler.
Prevent
- Treat 529 like 503: retry, never alert on a single occurrence.
- Use the Message Batches API for work that does not need an immediate answer.
- Alert on the 529 rate over 5 minutes, not individual errors.
FAQ
Does a 529 count against my rate limit?
It signals provider capacity, not your quota. Your rate-limit headers tell you how much of your own budget remains.
Is 529 a real HTTP status?
It is not in the HTTP standard. Anthropic uses it to distinguish overload from 500 api_error; SDKs treat it as a retryable server error.
How long do overloads last?
Usually seconds to a few minutes. Exponential backoff with jitter up to about a minute covers most of them.
Related errors
Last verified 2026-10-22 · Source: Anthropic API error reference + SDK docs · Official docs ↗ · ~22,100 searches/mo