Repository navigation
Codex usage limits desync between web Analytics and macOS app #23192
Description
Summary
Codex is showing mutually incompatible usage-limit state for the same signed-in Plus account across the Codex web Analytics page and the Codex desktop/macOS app.
This is not just "the numbers look different." The two surfaces disagree simultaneously on:
- 5-hour remaining percentage
- 5-hour reset time
- weekly remaining percentage
- weekly reset date
The web Analytics page explicitly says Codex usage draws from the shared agentic usage limit, but the desktop app is presenting a different quota state for that same shared limit. Restarting the app, reinstalling, cache clearing, local cleanup, and an Onyx cache-cleaning attempt did not resolve the inconsistency.
This should be treated as a quota-state authority conflict / synchronization defect / stale-state propagation issue unless backend evidence proves otherwise.
Environment
- Account/plan shown in UI: Plus
- Web surface: ChatGPT/Codex Analytics page on
chatgpt.com, Analytics -> Usage - Desktop surface: Codex desktop/macOS app, Usage & billing
- Desktop app installed locally:
26.513.31313(2867) - macOS: 26.5 (
25F71), Apple Silicon - Observation time: May 17, 2026, approximately 21:28-21:36 WEST (Europe/Lisbon)
- Screenshot evidence captured from the affected account:
- Desktop Usage & billing screenshot:
CleanShot 2026-05-17 at 21.28.58@2x.png - Web Analytics screenshot:
CleanShot 2026-05-17 at 21.29.56@2x.png - Desktop compact usage menu screenshot:
CleanShot 2026-05-17 at 21.36.30@2x.png - Later Web Analytics screenshot after the dashboard state changed:
CleanShot 2026-05-17 at 22.41.05@2x.png
- Desktop Usage & billing screenshot:
Screenshot evidence
Desktop Usage & billing shows 5 hour usage limit = 100% left, reset 2:28 AM, and Weekly usage limit = 62% left, reset May 19:
Web Analytics shows 5 hour usage limit = 87% remaining, reset May 18, 2026 12:54 AM, and Weekly usage limit = 85% remaining, reset May 24, 2026 1:16 AM:
Desktop compact usage menu later still shows the desktop-side state: 5h 100% with reset 2:36 AM, and weekly 62% with reset May 19:
Later the same web Analytics dashboard changed again. It now shows 5 hour usage limit = 100% remaining with no reset timestamp visible, and Weekly usage limit = 62% remaining, reset May 19, 2026 6:12 PM:
Authoritative failing behavior
Both surfaces are presenting the same product concept: included Codex usage limits for the same account. They should reconcile to one authoritative quota state, or the UI should clearly identify which surface is authoritative and why the other surface is stale or pending refresh.
Instead, the surfaces disagree on both quota windows at the same time:
| Metric | Web Analytics | Desktop App | Conflict |
|---|---|---|---|
| 5-hour remaining | 87% | 100% | Yes |
| 5-hour reset time | 12:54 AM | 2:28 AM | Yes |
| Weekly remaining | 85% | 62% | Yes |
| Weekly reset date | May 24 | May 19 | Yes |
Additional desktop evidence: the compact "Usage remaining" menu later showed 5h 100% with reset 2:36 AM, and weekly 62% with reset May 19, so the desktop surface remained on the conflicting 100% / 62% / May 19 state while the 5-hour reset display moved again.
Follow-up web evidence: after the original contradiction was captured, the web Analytics page itself changed from its earlier web state (87% 5-hour remaining / 85% weekly remaining / weekly reset May 24, 2026 1:16 AM) to a different state (100% 5-hour remaining / 62% weekly remaining / weekly reset May 19, 2026 6:12 PM). That later web state aligns with the desktop percentages, but not with the earlier web Analytics evidence. This does not resolve the bug; it shows that the supposed shared source-of-truth can mutate between incompatible quota states.
| Metric | Earlier Web Analytics | Later Web Analytics | Conflict |
|---|---|---|---|
| 5-hour remaining | 87% | 100% | Yes |
| 5-hour reset time | May 18, 2026 12:54 AM | no reset timestamp visible | Yes |
| Weekly remaining | 85% | 62% | Yes |
| Weekly reset date/time | May 24, 2026 1:16 AM | May 19, 2026 6:12 PM | Yes |
Credits are not the issue here: both web and desktop showed 0 credits. The contradiction is specifically in the included shared usage-limit state.
Reproduction evidence
- Open ChatGPT/Codex web Analytics -> Usage for the account.
- Observe the Balance cards:
5 hour usage limit:87% remainingResets May 18, 2026 12:54 AMWeekly usage limit:85% remainingResets May 24, 2026 1:16 AM
- Open Codex desktop/macOS app -> Usage & billing for the same account.
- Observe General usage limits:
5 hour usage limit:100% leftResets 2:28 AMWeekly usage limit:62% leftResets May 19
- Restart/reinstall/cache-clear/local-cleanup/Onyx-clean the local app environment.
- Observe that the cross-surface contradiction persists.
Why this is not explained by display formatting
- Timezone formatting alone does not explain it: the 5-hour reset differs by about 1h34m (
12:54 AMvs2:28 AM), and the weekly reset differs by five calendar days (May 24vsMay 19). - Rounding alone does not explain it: the remaining values differ by 13 percentage points for the 5-hour window and 23 percentage points for the weekly window.
- A purely local desktop cache explanation is incomplete because restart, reinstall, cache clearing, local cleanup, and Onyx cache cleaning did not resolve it.
Evidence-backed hypotheses that fit the observed contradictions:
- The web Analytics page and desktop app are reading from different quota-state pipelines or backend calculations.
- The desktop app is receiving or persisting stale quota state that is not invalidated by normal local cleanup.
- The backend has more than one quota authority for the same shared agentic limit and the frontends are reconciling against different authorities. The later web Analytics mutation makes this stronger than a simple desktop-only stale-cache theory, because the web dashboard itself later adopted a different quota state.
- There may be separate handling for percentage calculation versus reset timestamp calculation, because both values diverge independently.
Related reports reviewed
I searched open and closed issues before filing, including these query families: analytics mismatch, usage limit mismatch, weekly usage incorrect, desktop app usage discrepancy, codex analytics inconsistency, reset time mismatch, limit remaining incorrect, app vs analytics mismatch, quota desync, stale quota cache, shared usage counter inconsistency, usage percentage mismatch, codex desktop incorrect usage, and analytics page wrong values.
Related but not duplicate:
- Codex weekly usage dropped from ~70% to ~7% at 5-hour reset boundary #23188 reports weekly usage dropping from about 70% to about 7% at a 5-hour reset boundary and explicitly frames this as a dashboard reconciliation/accounting problem. It overlaps with the reset-boundary and weekly quota mutation behavior, but it does not include the cross-surface web Analytics vs desktop contradiction or the later web-dashboard state flip documented here.
- usage limit codex app bug #22650 reports CLI/app blocking while
/statusand web usage show remaining allowance. It overlaps on quota authority mismatch, but it does not cover the web Analytics vs desktop app contradiction table, weekly reset-date conflict, and simultaneous 5-hour + weekly percentage conflict. - "You've hit your usage limit." Despite 10% Rate Limit Usage Remaining #12299 reports "usage limit hit" despite remaining quota, with comments showing web/status disagreement. It overlaps on enforcement-vs-display state, but not this desktop settings vs web Analytics reset-date/reset-time/percentage conflict.
- CLI reports usage limit reached for Business team seat while usage dashboard says no Codex rate limits #16909 reports Business/Edu CLI enforcement contradicting a dashboard that says no Codex rate limits. It is adjacent account-entitlement/enforcement mismatch, not the same Plus web Analytics vs macOS app shared-limit desync.
- Codex Desktop open → 5-hour usage decreases after reset despite no active task, no CLI, and no credit-history event. #21966 reports the desktop app appearing to consume 5-hour usage while idle and possible Analytics attribution mismatch. It overlaps on desktop/app quota reporting, but not the same same-minute web-vs-desktop contradictory source-of-truth state.
- 5h limit changed reset time during usage and pushed it back ~2h #22133 reports 5-hour reset time drifting by about two hours. It overlaps on reset-time instability, but not weekly reset date or percentage disagreement between web and desktop.
- Weekly usage % jumps 18pp when plan_type flips pro -> prolite despite only 26M tokens #21216 reports weekly percentage jumps tied to denominator/plan-type changes. It overlaps on percentage calculation inconsistency, but not cross-surface state authority.
- Weekly limit reset date changed from Nov 3 to Nov 7th #5999 reports weekly reset-date movement. It overlaps on reset-date instability, but not this current web Analytics vs desktop app split.
- Showing "You’re out of Codex messages" either I have credits #19417 reports desktop "out of messages" / credit handling inconsistency. It overlaps on desktop usage-state correctness, but not this four-field shared-limit contradiction.
Post-filing search note: issues created after this report at the time of re-check (#23193-#23198) were reviewed and were Windows/session/connectivity/crash reports, not additional duplicates of this quota-state defect.
I do not see an existing issue that fully covers all of these at once:
- cross-surface contradiction
- 5-hour reset-time inconsistency
- weekly reset-date inconsistency
- 5-hour remaining-percentage inconsistency
- weekly remaining-percentage inconsistency
- persistence after restart/reinstall/cache clearing/local cleanup/Onyx cleanup
Expected behavior
Codex should have one authoritative shared usage-limit state for the account.
At minimum:
- Web Analytics and desktop app should show the same remaining percentages for the same quota windows.
- Web Analytics and desktop app should show the same reset timestamps/dates for the same quota windows.
- If one surface is cached, it should show last-updated state and refresh/failure status instead of presenting stale values as authoritative.
- If Analytics and desktop intentionally use separate quota pipelines, the UI should say which one controls enforcement.
- If a hidden quota, burst limit, or model-specific limiter is involved, it should be exposed separately rather than overloading the shared 5-hour/weekly usage UI.
Please clarify:
- Which surface is authoritative for included Codex usage limits?
- How is quota state synchronized between web Analytics and the desktop app?
- Do Analytics and the desktop app use separate quota services or separate backend calculations?
- Are percentage remaining and reset timestamps computed by the same authority?
- What local or server-side invalidation should force the desktop app to reconcile with the web Analytics state?




Activity
github-actions commentedon May 17, 2026
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
jjoanna2-debug commentedon May 17, 2026
Correction to the evidence presentation: the prior evidence path used downloadable assets, but the screenshots need to be visible inline in this issue thread. Redacted inline screenshots are attached below.
The defect is not just a stale display value. The usage-limit state is unstable: the reset date has been observed fluctuating between May 19 and May 24, and both the five-hour and weekly usage-limit counters have been observed fluctuating unexpectedly. That points to a usage-limit state desync or inconsistent limit-source/hydration path, not normal quota countdown behavior.
Inline evidence:
Earlier web Analytics state: 5-hour limit at 87% remaining and weekly limit at 85% remaining, with the weekly reset showing May 24.
Desktop Usage & billing state from the same account context: 5-hour limit at 100% left and weekly limit at 62% left, with the weekly reset showing May 19.
Desktop compact usage menu later still showed the desktop-side state: 5-hour limit at 100% and weekly limit at 62%, with the weekly reset showing May 19.
Later web Analytics state: the web dashboard itself changed to 5-hour limit at 100% remaining and weekly limit at 62% remaining, with the weekly reset showing May 19, 2026 6:12 PM.
The release asset set remains only a secondary archive path; the redacted screenshots above are the in-thread evidence presentation.
AmanRajSinghMourya commentedon Jun 11, 2026
I agree with this. I have set some goal and then stopped it not killed it and I had around 10% weekly limit remaining and after the weekend I saw it all gone.
Again today my weekly limit got reset on 11th June, and it is already 3% down like I have not even opened the codex app/terminal/cloud and it is already down by some %
NickyVerslycken commentedon Jul 10, 2026
I have now the same issue between the web usage view and the view trough the new ChatGPT Codex app on Windows, they both show diferent data, as well the codex cli is showing the same as the web usage but the desktop app shows something else.
But after a full stop of all the processes of ChatGPT Codex and a restart of the app the desktop app then showed the correct values in comparison with the cli and web.
So t looks like a stale data error in the desktop app, would be nice to fix this in a future release,
Thanks in Advance.