---
title: "Anthropic 529 overloaded_error: meaning and the fix"
canonical: https://relayswitch.io/fix/anthropic-529-overloaded
generated: 2026-11-02T10:52:17.851Z
source: https://api.relayswitch.io/v1/catalog
base_url: https://api.relayswitch.io/v1
---

Fix

# Anthropic 529 overloaded\_error: what it means and the fix

The one Claude error that has nothing to do with you. What Anthropic’s docs say about it, the retry the SDK already does, and the structural fix: a second route and a fallback model before the error reaches your code.

[Get a key](https://app.relayswitch.io/console)[The switch](#switch)

The error

## What the client prints

text

1`HTTP 529`

2`{`

3 `"type": "error",`

4 `"error": {`

5 `"type": "overloaded_error",`

6 `"message": "Overloaded"`

7 `},`

8 `"request_id": "req_..."`

9`}`

10

11`# As Claude Code prints it:`

12`API Error: 529 Overloaded`

## What it means

Anthropic's [API errors page](https://platform.claude.com/docs/en/api/errors) (read 2026-10-31) lists 529 `overloaded_error` as "The API is temporarily overloaded" and adds that a 529 can occur when the API experiences high traffic across all users.

It is not a rate limit: those are 429 `rate_limit_error` and name the limit you crossed. It is not your balance: that is 402. The same page notes one related case: an organization whose usage rises sharply can see 429s from acceleration limits, which it advises avoiding by increasing traffic gradually.

During a stream the error can arrive after the 200: the [same page](https://platform.claude.com/docs/en/api/errors) points to the streaming error event for that shape, so a client that only checks the status code can miss it.

## The retry rule

The official SDK retries transient failures, rate limits and 5xx errors included, with exponential backoff, twice by default, honouring `retry-after` when present (Anthropic's errors page, 2026-10-31). Raise `max_retries` and the same loop runs longer.

A 529 that lasts hours is a capacity event, and a retry loop on one host waits it out with you. The [rate limits page](https://platform.claude.com/docs/en/api/rate-limits) says limits are maximums, not guaranteed minimums; nothing promises capacity.

The fix is a second place to send the request: another route for the same model, then another model, both tried before the error is yours to handle.

The structural fix

## A key that fails over, with limits you set

A retry loop treats the symptom. On this key the next route is tried before the error reaches you, every limit is per key, and a failed request costs nothing. From the OpenAPI document, read 2026-10-31.

Failover before you see it

A route that fails with a 5xx or a 429 is retried on the next route for the same model. x-uplink-attempts on the answer counts the tries; the price is the model’s own either way.

Your own fallback list

models: \[...\] names up to 5 models tried in order once every route of the one before has failed before a byte was sent. Each bills at its own price when it answers.

Failed requests are not charged

A 429, 502 or 503 from this API charges nothing and carries retry-after: back off that long before trying again.

Limits per key, set by you

rpm from 1 to 100,000, tpm from 1 to 50,000,000 and concurrency from 1 to 10,000 on each key. Default: 600 requests a minute per key, 50 in flight per account.

A budget per key

budget\_usd plus a daily, weekly or monthly spend limit. The key stops at its own line with a 402; the rest of the balance is untouched.

One request id

x-uplink-request-id on every answer, errors included. Quote it and we find the call.

Live

## Claude route, right now

From `GET https://api.relayswitch.io/v1/status`, the public feed behind [/status](https://relayswitch.io/status), generated 2026-11-02T10:05:36.545Z.

| Service | State | Last check | Latency | Checks today | Failures today |
| --- | --- | --- | --- | --- | --- |
| Claude | Operational | Nov 2, 2026, 9:07 AM UTC | 7373 ms | 10 | 0 |

Every hour the gateway counts the past hour’s real requests to this route: answered or failed. A request answered after a retry counts as answered.

The daily real-model check: 305 of 339 models answered as before, generated 2026-11-02T10:05:36.546Z. Every verdict is on [/proof](https://relayswitch.io/proof).

Live prices

## The ids this page is about, per million tokens

The Claude ids on this key, in the Anthropic Messages format, with Anthropic’s list price beside ours where the catalog has it.

| Model | Input | Output | Developer list in / out |
| --- | --- | --- | --- |
| [Claude Opus 5.5](https://relayswitch.io/models/claude-opus-5-5)claude-opus-5-5 | $2.80 | $10.00 | $4.00 / $20.00 |
| [Claude Sonnet 5.5](https://relayswitch.io/models/claude-sonnet-5-5)claude-sonnet-5-5 | $1.20 | $3.00 | $2.00 / $10.00 |
| [Claude Haiku 5.5](https://relayswitch.io/models/claude-haiku-5-5)claude-haiku-5-5 | $0.06 | $0.15 | $0.10 / $0.50 |

Read from the catalog at render. A request that fails over bills at the price of the model that answered.

The switch

## Anthropic SDK: a base URL and a fallback model

python

1`import anthropic`

2`import os`

3

4`client = anthropic.Anthropic(`

5 `base_url="https://api.relayswitch.io/v1",`

6 `api_key=os.environ["RELAYSWITCH_API_KEY"],`

7`)`

8

9`reply = client.messages.create(`

10 `model="claude-opus-5-5",`

11 `max_tokens=1024,`

12 `messages=[{"role": "user", "content": "Summarise the diff."}],`

13 `extra_body={"models": ["claude-sonnet-5-5"]}, # answers if every claude-opus-5-5 route fails`

14`)`

15`print(reply.model) # the model that answered; billed at its own price`

`base_url` moves the SDK here; the request shape is the Messages API's own. `models` is this API's fallback list: up to 5 ids tried in order once every route of the one before has failed before a byte was sent. The answer names the model in `model` and `x-uplink-model`, and `x-uplink-attempts` says how many routes it took.

A key can carry `fallback_models` for every request that names none; the [routing page](https://relayswitch.io/features/routing) has the key call.

Related

-   [Claude API pricing hub](https://relayswitch.io/pricing/claude)
-   [Claude Code setup guide](https://relayswitch.io/guides/claude-code)
-   [Claude by API, no KYC](https://relayswitch.io/anonymous-claude-api)
-   [Routing and fallbacks](https://relayswitch.io/features/routing)
-   [Key budgets and limits](https://relayswitch.io/features/key-budgets)
-   [Live status](https://relayswitch.io/status)

Other errors

-   [Claude Code: API Error: Rate limit reached](https://relayswitch.io/fix/claude-code-rate-limit-reached)
-   [OpenRouter 429: Provider returned error](https://relayswitch.io/fix/openrouter-429-provider-returned-error)
-   [Gemini API 429 RESOURCE\_EXHAUSTED](https://relayswitch.io/fix/gemini-api-429-resource-exhausted)
-   [OpenRouter: No endpoints found](https://relayswitch.io/fix/openrouter-no-endpoints-found)
-   [All fix guides](https://relayswitch.io/fix)

FAQs

## Questions

From what people ask about this error.

Open the console

A key in under a minute

[Get a key](https://app.relayswitch.io/console)

Or email [hello@relayswitch.io](mailto:hello@relayswitch.io)

### 

### 

### 

### 

## A key that does not stop at one host

Failover at the same price, limits and a budget per key, failed requests not charged. Card or crypto, no KYC, no subscription.

[Live status](https://relayswitch.io/status)[Get a key](https://app.relayswitch.io/console)

