Skip to main content

HTTP 529 Overloaded

Non-standard, Anthropic-specific: the API is temporarily overloaded and shedding load.

5xx · Server error✓ retryable with backoff

In AI APIs specifically

Anthropic's dedicated overload signal (overloaded_error). Distinct from 429 — this is not about YOUR rate limit but about aggregate platform load. Typically resolves within seconds to minutes. The SDKs retry it automatically a limited number of times.

Fix checklist

  • Retry with exponential backoff and jitter — start ~2s.
  • Reduce concurrency while 529s persist; pressure makes it worse.
  • Consider falling back to a different Claude model class, which may have separate capacity.
  • Check status.anthropic.com — sustained 529s usually accompany an incident.

Retry handler (TypeScript)

async function fetchWithRetry(url: string, init: RequestInit, maxRetries = 5) {
  for (let attempt = 0; ; attempt++) {
    const res = await fetch(url, init);
    // 529 is retryable — back off and try again.
    if (res.status !== 529 || attempt >= maxRetries) return res;
    const retryAfter = Number(res.headers.get("retry-after"));
    const delay = Number.isFinite(retryAfter) && retryAfter > 0
      ? retryAfter * 1000
      : Math.min(60_000, 1000 * 2 ** attempt) * (0.5 + Math.random()); // expo backoff + jitter
    await new Promise((r) => setTimeout(r, delay));
  }
}

Spec: official documentation