TokenPad

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.

The message you are seeing

OpenAI
You exceeded your current quota, please check your plan and billing details. (error code: insufficient_quota)
Anthropic
Your credit balance is too low to access the API.

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. 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. 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. 3

    Payment method expired or was declined

    A card expiry that nobody noticed. The account continues working until the next charge attempt fails.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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

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.