Repository navigation
Usage limits normalized this morning but regressed by evening, draining ~5x faster again #31322
Description
Hi, opening a separate issue because this looks like a recurring/systematic problem, not a one-off spike.
Related previous issue: #30939
Previous Feedback ID: 019eaf5c-26e2-79a0-b678-ffa25afc0863
What changed today:
- In the morning of July 7, 2026, usage finally looked normal again.
- By the evening of July 7, 2026, the behavior regressed.
- Limits are again draining around 5x faster than expected.
This is happening even after I completed identity verification with passport verification. I am not posting any personal verification details here because this is a public GitHub issue, but support should be able to check the account internally.
This has now been recurring since around mid June. Earlier the limits were burning about 5-10x faster than normal, then it briefly improved, and now the same issue came back the same day.
Why this looks systemic:
- The issue comes and goes without a matching change in my actual Codex usage.
- It previously looked related to route/IP/anti-abuse filtering.
- A US connection made the behavior normal for a while, but that stopped helping.
- Today it was normal in the morning, then reverted again by evening.
- This is on a paid
100x5plan, so the product is effectively unreliable for normal work.
Environment:
- Codex CLI version:
codex-cli 0.142.0 - App: Codex Desktop
- OS: macOS
15.7.4(24G517) - Current region / connection: Poland, P4 Sp. z o.o. (
AS9141) - Plan: paid
100x5 - Started: around mid June 2026
- Regressed again: evening of July 7, 2026
Can you please investigate this as a recurring usage-accounting/rate-limit regression, check whether the account is still affected by anti-abuse/rate-limiter state, and reset the incorrectly drained quota for the affected period?
I can upload new feedback / screenshots if needed.
User feedback: unexpected usage drain in Linux app sessions
- Source: https://x.com/bot_adeel/status/2090720124714312012
- Source: https://x.com/madsholme/status/2090815302191755573
- Source: https://x.com/bash_superishka/status/2091846329190240711
- Type: external
- User reports:
- “i'm on chatgpt app on linux, even for minor changes it consumes 3-4% of limit.”
- “I'm using the codex app on Linux and I'm severely degraded limits. Same with the cli agent.”
- “One 12min task on Sol Extra High took 5% of my weekly usage on the Plus plan.”
- “it wrote no code, it was just planning. 5% of usage for a single planning task on standard speed. I use the Chatgpt app on Ubuntu.”
Activity
github-actions commentedon Jul 7, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
in0vik commentedon Jul 7, 2026
Additional observation: in parallel with the limit-drain regression, I am also seeing noticeably slower inference / response generation. Sometimes I have to wait several minutes for a response, and subjectively the generation speed feels around ~0.5 tokens/sec.
This started showing up around the same time as the renewed fast limit drain, so it may be related to the same routing / rate-limiter / anti-abuse state rather than just usage accounting.
nabinpkl commentedon Jul 7, 2026
+1 Same observation for me max 5x limits draining 5x in mere about 4-5 messages. feedback id: 019f368b-a811-7343-9f3c-3184ef094dd0
liufangyuan247 commentedon Jul 7, 2026
Same here,i switched from pro 5x plan to pro 20x plan yesterday, and it seems 20x is drained as fast as 5x to me.
Howchie commentedon Jul 7, 2026
I've hit my 5h limits multiple mornings now on very light work using 5.4. I'm on the plus plan and usually never hit 5h limits. So, adding my voice, usage is totally messed up. The circled days are the two I have hit the 5hr cap and it is clearly nowhere near the usage of previous days (I only work 9-5, but it's very obvious even stacking 5x perfectly complete usage of every 5hr cap couldn't reach some of the other days usage).
It's also not because I'm using a high model as these days I was using lighter models predominantly because the tasks I ran were straightforward and not using big contexts.

midnighter90 commentedon Jul 8, 2026
Just the same here, my usage has gone down but I reach my limit even with the easiest prompts using GPT5.5 on medium
Howchie commentedon Jul 8, 2026
These are the days I've hit 5hr usage. Literally my lowest usage working days in the month, and using lower quality models. How is this still not resolved or acknowledged?!
midnighter90 commentedon Jul 9, 2026
Some very strange things are going on, my usage keeps switching between:
and:
zrt219 commentedon Jul 12, 2026
Same problem for me its insane Feedback ID: 019f53b9-e40d-7930-9014-7fea72713e7a
jeffer1312 commentedon Sep 7, 2026
Adding measured data from a single session, in case it helps narrow this down. All figures come from the
rate_limitspayload the server returned in eachtoken_countevent of the local rollout, not from my own estimates.Codex CLI 0.153.4, ChatGPT Plus, 2026-09-07. The 5h window was clean at session start (
used_percent0.0,resets_at15:16:22Z), so everything below happened inside one window.Three models used in the same session, same work, cost per 1% of the window:
Two observations that seem more useful than the raw ratio:
1. The charge looks flat per request, not per token. Two consecutive calls, both gpt-6-astra at low effort:
6x difference in payload, same 3-point charge. Across the whole astra phase the cost was a flat ~3 points per request from 17% to 95%, with no correlation to request size.
2. Cache hits produced no discount. 5,635,200 of 6,061,110 input tokens (93.0%) were cache reads, and the window still drained at full rate. This does not fit the explanation that degraded cache hit rates are what make usage drain faster — my cache hit rate was high and the drain was maximal anyway.
Net effect: 29 requests exhausted a 5-hour window while producing 13,361 output tokens in total (16 shell commands, 22 assistant messages, one patch). That works out to a ceiling of roughly 33 requests per 5 hours on gpt-6-astra at low effort, regardless of how small each request is.
Happy to share the full
token_countseries if it is useful.in0vik commentedon Sep 7, 2026
try turning off memories
jeffer1312 commentedon Sep 7, 2026
@in0vik Thanks — I checked, and memories are already off here, so that is not the cause in my case.
The local store exists but is empty:
~/.codex/memories_1.sqlitehas 0 rows in bothstage1_outputsandjobs. Grepping every rollout in~/.codex/sessions/2026/09/turns up no injected memory content either.On the mechanism, I don't think memories could explain this shape anyway. Memories would add input tokens, and the drain in my logs does not track input size at all — a 45,963-token request and a 280,654-token request both moved the counter exactly 3 points. Sending less context does not reduce a charge that is flat per request.
Since my first comment the 5h window reset and the same pattern reproduced immediately, which rules out it being a one-off:
43 points in 2 minutes 11 seconds across 17 requests — 13 from the main session plus 4 from a sub-agent drawing on the same counter — which is 2.5 points per request. That matches the ~3 points per request I measured in the previous window, on a different context, with a different cache state. Every one of those requests carried ~312,000 input tokens at 99.7% cache hit rate and returned between 30 and 260 output tokens.
So across two independent windows the charge stays flat per request and correlates with nothing: not input size, not cache hit rate, not output size, not reasoning tokens.
For anyone else measuring this: the numbers are in the
token_countevents of~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl, underpayload.rate_limits.primary.used_percentandpayload.info.last_token_usage. That is the server's own accounting, not a local estimate, so it is worth comparing across models before concluding anything about your own usage.jeffer1312 commentedon Sep 7, 2026
Third data point from the same account, a couple of hours after the previous one. I left the session idle for about 100 minutes, then told it to continue. Five requests later:
17 percentage points in 38 seconds across 5 requests, all gpt-6-astra at low reasoning effort. Per-request input was 312,576 / 313,043 / 316,070 / 316,212 / 325,510 tokens, cache hit rate above 99% on every one, and output was 94 / 53 / 86 / 153 / 200 tokens. So five requests produced 586 output tokens in total and cost roughly a sixth of a 5-hour window.
That is now three separate bursts in one day, across two windows, with different contexts and different cache states:
I want to be precise about what this does and does not show, because I think it matters for anyone else reporting here.
It does not show a spike or an erratic counter. The rate is remarkably stable - about 3 points per request no matter what the request contains. What it shows is that the charge is flat per request and correlates with nothing measurable: not input size (45,963 and 280,654 token requests both cost 3 points), not cache hit rate (22% and 99.7% both cost 3 points), not output size, not reasoning tokens.
The practical consequence is a ceiling of roughly 33 requests per 5-hour window on this model at low effort, regardless of how trivial each request is. OpenAI support has confirmed to me in writing that for Plus there is no published per-model request ceiling, and that neither the per-request-versus-per-token behaviour nor the cache treatment is documented for included limits. So the issue is not that the accounting misbehaves - it is that the rate is both very low and entirely unpublished, which makes it impossible to plan around.
If others in this thread want to check their own numbers rather than going by the banner, they are in
payload.rate_limits.primary.used_percentandpayload.info.last_token_usagein~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl. Comparing points-per-request across models in a single session is the measurement that made this legible for me.jeffer1312 commentedon Sep 7, 2026
Correction to my previous comment.
I wrote that "for Plus there is no published per-model request ceiling." That was based on what OpenAI support told me in the chat, and it is not accurate enough to stand.
A widely-cited limits tracker publishes a figure for exactly this: 5 to 45 local messages per 5-hour window for GPT-6 Astra on ChatGPT Plus, labelled there as an "official estimate" (codexusage.dev/limits/astra). Several outlets repeat the same range. My 29 requests fall inside it.
Two caveats I want to be precise about, because the distinction matters for anyone else reporting here:
That tracker is a third party, not OpenAI. I could not find the 5-45 range on OpenAI's own Help Center - article 11369540 ("Using Codex with your ChatGPT plan") carries no per-model message counts at all and defers to the pricing page. So the number is published somewhere and repeated widely, but I cannot point at a first-party OpenAI page stating it.
OpenAI support, in my escalated ticket, told me the 5-45 figure was a ChatGPT Business seat number that does not apply to Plus, and that for Plus they see no published per-model message-count ranges. That contradicts the tracker. One of the two is wrong and I do not know which.
What my measurements still show, and what the tracker explicitly does not cover: it says nothing about whether subscription allowance is charged per request or per token, and nothing about cache treatment. That is the part my data speaks to - a 45,963-token request and a 280,654-token request both cost 3 points, and a 93% cache hit rate produced no discount. Those two findings are unaffected by the correction above.
So the accurate framing of my report is narrower than what I wrote before: the request ceiling appears to be published (third-party, unverified against OpenAI's own docs), while the charging model behind it is not.