EN
Refunds & balance

Why does OpenRouter return 402 spend cap or in-flight budget errors when I still have credits?

A positive account balance and an HTTP 402 budget error can both be true. OpenRouter can enforce several controls separately: an API-key limit, an organization or member guardrail, and a temporary in-flight budget reservation while concurrent requests are still running. The messages `Spend cap exceeded (daily limit)` and `in_flight_budget_exhausted` point to those controls, not necessarily to an empty credit balance.

Do not buy more credits as the first response. Check the limit on the exact API key making the request, then check organization/member guardrails and their reset period. Stop or reduce concurrent requests and wait a few minutes for in-flight reservations to clear. A fresh API key with no custom limit is a useful diagnostic: if it works, the old key's policy is the problem; if it fails too, the restriction is probably at the account or organization level.

If the same 402 persists across a UTC reset, with no key or member limit configured, send OpenRouter support the request ID, exact error code, UTC timestamps, key name (never the secret), organization name, and a screenshot of the positive balance and limit settings. ROZO cannot change OpenRouter account controls, and a crypto top-up will not fix this class of 402 when credits are already present.

Steps to check

  1. Check the limit and reset period on the exact API key used by the failing request.
  2. Check organization and member guardrails; an account balance does not override them.
  3. Reduce concurrency and wait a few minutes so in-flight reservations can clear.
  4. Test a fresh API key with no custom limit, without exposing either key in screenshots or support messages.
  5. If the error survives a UTC reset, contact OpenRouter support with request IDs, UTC timestamps, key name, organization name, and screenshots of balance and limits.

Frequently asked questions

Should I buy more credits to clear this 402?
Not when your balance is already positive. First identify whether an API-key, member, organization, or in-flight limit is blocking requests; adding credits does not necessarily change those controls.
What does in_flight_budget_exhausted mean?
It usually means currently running or recently started requests have reserved the available budget. Lower concurrency and wait for those reservations to release before treating it as a billing failure.
What evidence should I send support?
Send request IDs, exact error text/code, UTC timestamps, key name, organization name, and screenshots of balance and configured limits. Never send the API-key secret.