ThinkFacility

Error messages

rate_limit_error

The message

rate_limit_error
Claude API as of September 17, 2026 read September 17, 2026AnthropicAPI errors

What it means

A 429 rate_limit_error means your organization hit a per-minute rate limit, its usage tier's monthly spend cap, or a Claude Code workspace limit. Only the first one clears by waiting.

What to do

Read the retry-after header and wait that many seconds; earlier retries fail. If there's no retry-after and error.details.error_code is enforced_spend_limit_reached, waiting won't help. That one is the monthly spend cap, and only a higher tier clears it.

A 429 from the Claude API isn't always the same problem. Anthropic's errors page gives the code three causes, and only one of them clears on its own: the per-minute rate limit. The other two are spend limits, and waiting does nothing for either.

Status
429 rate_limit_error
Fable 5.x, Start tier
500,000 input tokens per minute
Opus 5, Start tier
2,000,000 input tokens per minute
Shared bucket
Claude Fable 5.1 and Claude Fable 5
Spend-cap marker
enforced_spend_limit_reached

Why Fable 5.1 hits it sooner

Rate limits are applied separately for each model, and the Fable numbers are set well below the rest. On the Start tier, Claude Fable 5.x gets 500,000 input tokens per minute where Claude Opus 5 and Claude Sonnet 5 get 2,000,000, and the output allowance is 100,000 against 400,000.

There's a footnote under that table doing most of the work.

Fable rate limit is a total limit that applies to combined traffic across Claude Fable 5.1 and Claude Fable 5.

From Rate limits

So a service that kept the older model around for cheap calls is spending one budget twice, and swapping half the traffic back to Fable 5 buys nothing.

Which 429 you have

Start with the retry-after header. A rate limit 429 carries one, and the docs say it's the number of seconds to wait until you can retry the request, with earlier retries failing.

The spend-cap 429 has no retry-after at all. It sets error.details.error_code to enforced_spend_limit_reached, which is what the docs tell you to read, and usage pauses until 00:00 UTC on the first day of the next month unless you ask for a higher limit sooner. The SDKs' automatic retries keep failing the whole time.

What counts against the limit

Less than people assume. For most Claude models, only uncached input tokens count toward your ITPM rate limits, so tokens read from cache are free as far as the limiter is concerned (they're still billed, at the cache read rate).

Output works the other way round from what you'd expect from a token budget: OTPM is evaluated in real time as output tokens are produced, and the max_tokens parameter does not factor into OTPM rate limit calculations. Setting a generous max_tokens costs you nothing here.

When it isn't your limit at all

A sharp jump in usage can trigger acceleration limits, which also come back as 429s. The docs' answer is to ramp up traffic gradually and keep usage patterns consistent, which is a slower fix than raising a number in the Console.

A 529 overloaded_error is a different code and a different problem: the API is temporarily overloaded, across all users. The official SDKs already retry transient failures with exponential backoff, twice by default, honoring retry-after when it's there.