LLM API error · 429
Insufficient quota / exceeded current quota
This 429 is a billing problem, not a throughput one. Why retrying will not help, what actually causes it, and how to stop it recurring.
What it means
Despite sharing the 429 status with rate limiting, this is not a throughput problem. You have run out of credit, hit a spending cap you configured, or have no valid payment method.
Retrying will not help and backoff will not help. The request will keep failing until the billing side is resolved, which is why treating all 429s identically produces a confusing outage.
Why it happens
Most likely cause first.
- 1
Prepaid credits ran out
Several providers work on prepaid credit rather than post-paid billing. The balance reaches zero mid-day and everything stops, usually without warning if alerts were never configured.
- 2
A monthly spending cap was reached
A soft or hard limit set months ago as a safety measure, now reached because traffic grew. The safety measure works exactly as designed and nobody remembers configuring it.
- 3
Payment method expired or was declined
A card expiry that nobody noticed. The account continues working until the next charge attempt fails.
- 4
Free tier grant expired
Trial credits have an expiry date as well as a balance. They can expire with money still on them.
How to fix it
Check the billing dashboard, not the API status page
This is an account state, not a service problem. The provider’s status page will show everything green while your requests fail.
Distinguish it from a rate limit in your code
Both return 429. Read the error type or code — insufficient_quota should not be retried, while a rate limit should. Treating them the same produces a retry storm against an error that will never clear.
Add credit or raise the cap
And then set an alert well below the new ceiling, because the same thing will happen again at a higher number.
Work out what your real run rate is
If the cap was reached earlier than expected, the underlying issue is that spend is growing faster than the model you budgeted with. Project it properly.
Annual LLM Budget PlannerWorkload breakdown plus twelve-month projection with growth compounding.
Stopping it happening again
- Configure spend alerts at 50%, 80% and 95% of your cap rather than only at the cap itself.
- Handle insufficient_quota as a distinct failure path with a user-facing message, not as a generic retry.
- Model growth explicitly. Eight percent monthly growth is a 2.5× increase over a year, which is enough to reach a cap set as generous.
Tools that help
- Annual LLM Budget PlannerWorkload breakdown plus twelve-month projection with growth compounding.
- AI Cost per User CalculatorPer-user cost with the heavy-user tail modelled, and margin against your price.
- LLM API Cost CalculatorRequests per month in, dollars out. Input, cached input and output priced separately.
Frequently asked questions
- Why is a billing error returning 429?
- Historical convention: 429 signals "too many requests" broadly, and running out of quota is treated as a form of that. It is confusing, which is exactly why you should branch on the error code rather than the status.
- Will waiting fix it?
- No. Unlike a rate limit, nothing resets on its own except a monthly cap at the start of the billing period. Retrying only wastes time and fills your logs.