# Money-stop triage: which of the three spending limits stopped you
When spend stops your requests, the fix depends on which limit fired. All three look alike at first glance, and each has a different remedy.
## The three stops
1. Tier monthly spend cap. Start 500 USD, Build 1000 USD, Scale 200000 USD, Custom has no cap. Fires as HTTP 429 with type rate_limit_error, a message about crossing the monthly API usage threshold, error.details.error_code of enforced_spend_limit_reached on the Messages API, and no retry-after header. Usage pauses until 00:00 UTC on the first of next month unless a higher limit is approved. Retrying never helps.
2. Your own spend limit. Set below the tier cap in Console under Settings, then Billing. Fires as HTTP 400 invalid_request_error with a message beginning "You have reached your specified API usage limits" (or "specified workspace API usage limits" for a workspace limit), stating when access resumes. Raise or remove the limit to restore access.
3. Claude Code workspace limit. Checked separately from the org limits, and can return a 429 that does carry a retry-after header, unlike the tier-cap 429.
## Triage procedure
1. Read the status code: 400 means your own limit (stop 2). 429 means tier cap or workspace limit.
2. On a 429, read error.details.error_code and the retry-after header together. enforced_spend_limit_reached plus no retry-after means the tier cap: stop retrying and request a higher limit or wait for the month to turn. A 429 with retry-after means an ordinary rate limit or the workspace limit: honor the header.
3. Never let the SDKs' automatic retries run against a tier-cap 429. They fail until access resumes and burn nothing but your logs.
## The trap
Collapsing all three into "rate limited" and backing off. A tier-cap 429 is still failing at hour six because the reset is monthly. A 400 own-limit is a billing setting, not a request bug, so request surgery never clears it. Read the code and the header before choosing the remedy.
## Checklist
- Set your own spend limit below the tier cap if you want a 400 you control instead of a surprise monthly pause.
- On every 429, log error.details.error_code and whether retry-after was present. That pair is the whole triage.