Codex "exceeded retry limit, last status: 429 Too Many Requests": what it means and how to fix it
Back to the blog
Articlecodextroubleshootingagente de programaçãodev toolsinteligência artificial

Codex "exceeded retry limit, last status: 429 Too Many Requests": what it means and how to fix it

MafraNovember 1, 20264 min read

Codex is working, retries, and suddenly stops with exceeded retry limit, last status: 429 Too Many Requests. When the dashboard still shows quota left, the natural reaction is to assume Codex broke. That is not quite it, and the message carries a clue many people skip.

The error shows up in recent reports in the official openai/codex repository. Issue #57084, opened on 2026-10-26, documents failures on Linux with VS Code and a ChatGPT Pro plan, including one with 99% of the weekly allowance still available. As of 2026-11-01, OpenAI had not published a cause or a fix in that issue.

What does "exceeded retry limit, last status: 429" mean?

It means the server answered HTTP 429 (too many requests) and Codex used up its automatic retries before giving up. In the Codex source, the message is built as exceeded retry limit, last status: <status>, with , request id: <id> appended when the server returns that identifier.

What separates this error from a plan limit is in codex-rs/codex-api/src/api_bridge.rs. On a 429, Codex reads the response body. If the error type is usage_limit_reached, it shows the quota message ("You've hit your usage limit..."). Any other 429 becomes exceeded retry limit. In other words, this message is not the notice that your quota ran out.

What you seeWhat it meansWhat to do
You've hit your usage limitPlan quota exhaustedWait for the reset or buy credits
exceeded retry limit, last status: 429 Too Many RequestsGeneric 429, not the plan quotaSteps below
Selected model is at capacity. Please try a different model.The chosen model has no capacity right nowSwitch model with /model
Flowchart: exceeded retry limit with 429 in Codex, check quota with /status, switch model with /model, keep the request id, and the branch for the hit your usage limit message
From the error to a diagnosis: first find out whether it is plan quota or a generic 429.

How do you diagnose and work around it?

Follow the order. The first three steps take seconds and rule out the causes you can fix yourself.

  1. Read the exact text. If the message is "You've hit your usage limit", it is plan quota and the first row of the table applies. If it is exceeded retry limit, keep going.
  2. Check quota with /status. The command shows the session configuration and token usage. If plenty of quota is left and the error persists, your plan limit is not the problem.
  3. Switch model with /model. The command chooses the model and reasoning effort. The records in issue #57084 all come from the same model (gpt-6.1-sol, low effort), and the source has a per-model capacity error. Running the same task on another model shows whether the rejection is specific to that one.
  4. Wait before retrying. In issue #57084, retry warnings from several turns converged on the same time, within 0.7 seconds, with waits of a few minutes. Firing the same request again in a row only renews the wait.
  5. Update Codex. The latest release at the time of this research is 0.166.0 (2026-10-29), checked with gh release list -R openai/codex.
/status
/model

Can you raise the number of automatic retries?

Only for a provider you configure yourself. In the source, request_max_retries (default 4) and stream_max_retries (default 5) are fields of a model provider entry, each capped at 100. Example for your own provider in ~/.codex/config.toml:

[model_providers.my-gateway]
name = "My gateway"
base_url = "https://gateway.example.com/v1"
request_max_retries = 8
stream_max_retries = 10

Two honest caveats. I did not test whether these fields apply to the default OpenAI provider, so I do not promise they fix your case. And more retries do not change the server's decision: if the rejection is about capacity or a short usage window, you just wait longer before seeing the same error.

What should you save if the error continues?

Copy the request id at the end of the message when it appears, along with the UTC time, the model, the reasoning effort, the Codex version and the /status output. The author of issue #57084 points out that the missing Retry-After and request identifier in the logs is what blocks the analysis, and asks for exactly this data. Attach it to the issue, without tokens, project paths or prompts.

If your provider's limit is what stalls your day, Verboo Code delivers unlimited tokens on the plan, so the next attempt does not depend on a quota window.

Enjoyed this article?
Share knowledge with your network.
// Read also

Related articles