Skip to main content

Why does the LLM Gateway return 402 or 429?

A 402 means the wallet your key bills is below the $0.50 minimum, and a 429 means you reached your concurrency limit, a capacity limit or the per-minute limit for your IP address.

Two 429s share the code rate_limit_exceeded, so read the message:

  • 402 insufficient_quota, "The project has insufficient quota for this request.": the wallet your key bills is below the $0.50 minimum. A team project's key bills the team wallet. Add credit.

  • 429 "The project rate limit has been exceeded.": your balance-based concurrency limit, not a request rate. A $10 balance allows one request at a time, so parallel requests from coding tools hit it. Wait, or add credit.

  • 429 "Rate limit exceeded.": too many requests per minute from your IP address. Wait the retry-after seconds; the ratelimit-* headers show your allowance.

  • 429 concurrent_execution_limit, "...at its local execution capacity.": your project, or the gateway server, is at capacity. Wait and retry.

The first three are refused before a task starts and aren't charged. With the fourth, Wiro stops any task it started, normally without a charge.

Did this answer your question?