Skip to content

Codex usage limits desync between web Analytics and macOS app #23192

Closed

Description

@jjoanna2-debug

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

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:

Desktop Usage & billing shows 100% 5-hour left, 62% weekly left, and May 19 weekly reset

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:

Web Analytics shows 87% 5-hour remaining, 85% weekly remaining, and May 24 weekly reset

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:

Desktop compact usage menu shows 100% 5-hour, 62% weekly, and May 19 weekly reset

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:

Later Web Analytics shows 100% 5-hour remaining, 62% weekly remaining, and May 19 weekly reset

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

  1. Open ChatGPT/Codex web Analytics -> Usage for the account.
  2. Observe the Balance cards:
    • 5 hour usage limit: 87% remaining
    • Resets May 18, 2026 12:54 AM
    • Weekly usage limit: 85% remaining
    • Resets May 24, 2026 1:16 AM
  3. Open Codex desktop/macOS app -> Usage & billing for the same account.
  4. Observe General usage limits:
    • 5 hour usage limit: 100% left
    • Resets 2:28 AM
    • Weekly usage limit: 62% left
    • Resets May 19
  5. Restart/reinstall/cache-clear/local-cleanup/Onyx-clean the local app environment.
  6. 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 AM vs 2:28 AM), and the weekly reset differs by five calendar days (May 24 vs May 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:

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:

  1. Which surface is authoritative for included Codex usage limits?
  2. How is quota state synchronized between web Analytics and the desktop app?
  3. Do Analytics and the desktop app use separate quota services or separate backend calculations?
  4. Are percentage remaining and reset timestamps computed by the same authority?
  5. What local or server-side invalidation should force the desktop app to reconcile with the web Analytics state?

Activity

  1. added
    bugSomething isn't working
    appIssues related to the Codex desktop app
    codex-webIssues related to Codex Web
    rate-limitsIssues related to rate limits, quotas, and token usage reporting
    on May 17, 2026
  2. github-actions commented on May 17, 2026

    @github-actions
    Contributor
  3. jjoanna2-debug commented on May 17, 2026

    @jjoanna2-debug
    Author

    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.

    Redacted earlier web Analytics state showing May 24 weekly reset and 87 percent five-hour remaining

    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.

    Redacted desktop Usage and billing state showing May 19 weekly reset and 100 percent five-hour left

    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.

    Redacted desktop compact usage menu showing May 19 weekly reset and 100 percent five-hour value

    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.

    Redacted later web Analytics state showing May 19 weekly reset and 100 percent five-hour remaining

    The release asset set remains only a secondary archive path; the redacted screenshots above are the in-thread evidence presentation.

  4. AmanRajSinghMourya commented on Jun 11, 2026

    @AmanRajSinghMourya

    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 %

  5. NickyVerslycken commented on Jul 10, 2026

    @NickyVerslycken

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    appIssues related to the Codex desktop appbugSomething isn't workingcodex-webIssues related to Codex Webrate-limitsIssues related to rate limits, quotas, and token usage reporting

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions