What the error says
HTTP status 529, type overloaded_error, with the message:
Overloaded
Is the Anthropic API down right now?
Anthropic's own status page
Anthropic reports no incident on its status page.
As of the last successful poll, 2026-11-05 14:23 UTC.
Partially degradedOur checks of the Anthropic API
As of Nov 5, 2026, 2:36 PM UTC, RealUptime's checks of Anthropic passed in all 10 regions that returned a reading.
Our checks of the Anthropic API are failing or slow right now, so a 529 at this moment may well come from Anthropic's side.
Every region, response time and incident history for Anthropic
What it means
Anthropic returns HTTP 529 with the type overloaded_error when its API is temporarily overloaded, for example during high traffic across all users. It is not tied to your account's limits (those are 429), and it can appear while Anthropic's status page shows no incident. The same error reaches Claude Code users as "API Error: 529 Overloaded".
Is it you or them? Usually Anthropic's: it uses this code for failures or load on its own side.
Common causes
- High traffic across Anthropic's API, often on one model more than others.
- An incident affecting the model you call.
How to fix it
- Retry with exponential backoff and jitter, as in the snippet below. Anthropic's SDKs retry 529 a couple of times by default; raise max_retries for batch work.
- Fall back to another Claude model, which may have capacity when one is overloaded.
- Check our reading and Anthropic's status below, and queue work that can wait.
Retry with backoff
A retry loop that waits as long as Anthropic asks, else doubles the wait with random jitter so many clients do not retry in step:
// Retry Anthropic 529 errors with backoff and jitter.
const RETRYABLE = new Set([429, 500, 502, 503, 504, 529]);
async function withRetry(call: () => Promise<Response>, maxAttempts = 5): Promise<Response> {
for (let attempt = 1; ; attempt++) {
const response = await call();
if (!RETRYABLE.has(response.status) || attempt === maxAttempts) return response;
// Wait as long as the provider asks, else 1s, 2s, 4s... with full jitter.
const retryAfter = Number(response.headers.get("retry-after"));
const delayMs = retryAfter > 0 ? retryAfter * 1000 : Math.random() * 1000 * 2 ** (attempt - 1);
await new Promise((resolve) => setTimeout(resolve, delayMs));
}
}See these errors grouped, and know when the API is down
RealUptime Errors takes errors from any Sentry SDK. Tag each failed call with the provider, status and model, and errors from the same code group into one issue with its count and first and last time seen, so a run of 529s shows up as one rising issue instead of a flood:
import * as Sentry from "@sentry/node";
// The DSN from your RealUptime Errors project settings.
Sentry.init({ dsn: process.env.REALUPTIME_ERRORS_DSN });
if (!response.ok) {
Sentry.captureException(new Error(`Anthropic ${response.status}`), {
tags: { ai_provider: "anthropic", ai_status: response.status, ai_model: model },
fingerprint: ["anthropic", String(response.status)],
});
}RealUptime Monitor can check an API endpoint from several regions every minute and alert you when it fails, and the Anthropic outage page can alert you when Anthropic reports an incident. Both are free to start.
Related errors
- Anthropic error 429: rate_limit_error
- OpenAI error 503: The engine is currently overloaded
- Gemini API error 503: The model is overloaded
- Every AI API error code we cover
Anthropic's own reference: docs.anthropic.com/en/api/errors. How our checks work: methodology.