🚦

Codex and OpenAI: 429 Too Many Requests

HTTP 429 means the server is refusing requests for now, but in OpenAI products several very different problems share that one status. In Codex, 'exceeded retry limit, last status: 429 Too Many Requests' means Codex retried a 429 several times and gave up. Sometimes that is a genuine rate limit; sometimes it is an OpenAI-side problem, and OpenAI engineers have closed several of these GitHub reports as service-side issues they fixed, even for Pro users with most of their weekly allowance left. In the API, 'Request failed with status 429' can be a rate limit (requests or tokens per minute), but billing problems such as credit_balance_exhausted and spend limits also return 429. And when Codex runs through a third-party gateway or proxy, the 429 can be generated by that proxy rather than OpenAI. The fix depends on which one you have, so the first step is always to read the full error and check whether your usage meter, your billing, or the status page explains it.

Recommended toolMercorGet paid to use your expertise training and evaluating AI for leading AI labs.Join Mercor

Affiliate link, we may earn a commission at no extra cost to you.

Symptoms You Might See

⚠️

Codex retries several times and stops with 'exceeded retry limit, last status: 429 Too Many Requests'

⚠️

The error appears even though /status shows plenty of 5-hour and weekly usage left

⚠️

API calls fail with 'Request failed with status 429' or rate_limit_exceeded

⚠️

The response says to try again after a number of seconds

⚠️

Only one model or reasoning level fails while others work

Common Causes

A real rate limit

Sending too many requests or tokens per minute returns 429 with code rate_limit_exceeded and usually a 'try again after N seconds' message. Waiting and slowing down fixes it.

An OpenAI-side problem

Several Codex GitHub reports of this exact message from users far below their limits were confirmed by OpenAI staff as service-side issues and fixed on the backend. If many people report it at once, it is not your account.

Usage limits on your ChatGPT plan

If you sign in with ChatGPT and have used up your 5-hour or weekly allowance, Codex stops until the window resets. The usage meter shows this clearly.

Billing and spend limits on the API

credit_balance_exhausted, project_spend_limit_exceeded and organization_spend_limit_exceeded all use 429. These never fix themselves by waiting.

A proxy or gateway in the middle

Custom model providers and gateways can synthesize their own 429s, for example when the gateway's own quota is used up or it refuses to replay a failed request.

Step-by-Step Fixes

1

Check your usage meter

When to try: First, if you sign in with ChatGPT

In the Codex CLI run /status or /usage; in the app open Usage settings. If your 5-hour or weekly allowance is used up, wait for the reset or use a reset if you have one.

2

Check status.openai.com

When to try: When you have plenty of usage left

If your meter shows usage left, look for a Codex or API incident. During incidents the 429 clears once OpenAI fixes the backend, so retrying in a loop does not help.

3

Read the error code on API responses

When to try: For API keys and your own apps

For API calls, inspect error.code. rate_limit_exceeded means slow down; credit_balance_exhausted means add credits; a spend-limit code means raise the limit.

4

Back off and lower concurrency

When to try: For genuine rate limits

Respect the Retry-After header or the seconds in the message, use exponential backoff, and run fewer Codex sessions or API requests in parallel.

5

Try another model or reasoning level

When to try: When only one model returns 429

If one model or reasoning setting fails while another works, switch with /model for now and report the failing combination.

6

Bypass any gateway

When to try: When you use a proxy or third-party provider

If you use a custom model_provider or gateway in config.toml, test with direct OpenAI sign-in. If the 429 disappears, the gateway is the source.

7

Report it with /feedback

When to try: When the 429 persists without a cause

If none of the above explains it, run /feedback in Codex to upload logs and file a new issue with the request ID shown in the error.

How to Prevent This

✓

Watch your Codex usage meter before long sessions

✓

Run fewer parallel Codex sessions on one account

✓

Handle billing 429 codes separately from rate-limit 429s in your code

✓

Keep gateways and proxies out of the path unless you need them

When to Contact Support

Contact OpenAI when 429s continue with usage left, no incident on the status page and no proxy in use. Include the request ID printed in the error, the time, your plan, the model and your Codex version.

Frequently Asked Questions

Why do I get 429 in Codex when I have usage left?▼

It is often an OpenAI-side issue rather than your limit. OpenAI staff have confirmed and fixed several such cases on the backend. Check the status page, retry later, and report it with /feedback if it persists.

What does 'exceeded retry limit' mean?▼

Codex automatically retried the failed request several times and every retry also got 429, so it stopped and showed the last status.

Is 429 always a rate limit?▼

No. On the OpenAI API, billing problems such as an empty credit balance and spend limits also return 429. Check error.code to know which one you have.

How long should I wait after a 429?▼

For a rate limit, follow the Retry-After header or the seconds in the message, usually under a minute. For usage limits, wait for your 5-hour or weekly reset. For billing codes, waiting does nothing.

Can a VPN or proxy cause 429?▼

A gateway or proxy that sits between Codex and OpenAI can return its own 429. A VPN shared by many users can also hit IP-level limits. Test without them.

Other Common AI Errors

⚠️

ChatGPT Not Working

Service Issues

🚦

Rate Limit Exceeded

Usage Limits

📏

Context Length Exceeded

Input Limits

🔥

Model Overloaded

Service Issues

Don't stop here

What to read next

Hand-picked guides our readers explore right after this one.