Summary
On a prolite plan, the live read (chatgpt.com/backend-api/wham/usage) reports 0% used while the account is actually rate-limited. The notch shows "0% Used · 100% left" for a weekly window that is fully consumed.
Windows 11, Codenotch v1.15.0.
Live endpoint response
"plan_type": "prolite",
"rate_limit": {
"allowed": true,
"limit_reached": false,
"primary_window": { "used_percent": 0, "limit_window_seconds": 604800 },
"secondary_window": null
}
Rollout log (the real numbers)
"limit_name": "GPT-5.3-Codex-Spark",
"primary": { "used_percent": 0.0, "window_minutes": 300 },
"secondary": { "used_percent": 100.0, "window_minutes": 10080 }
The limit that actually blocks the user is model-level (GPT-5.3-Codex-Spark) and is not represented in the live payload. Because the live path takes priority, the correct value from the rollout is discarded.
Suggestion
When the live response has secondary_window: null but a recent rollout carries a secondary window, prefer the rollout value (or surface both). Optionally also display credits.balance.
Side note
With an HTTPS-inspecting antivirus (Kaspersky), the live read fails with invalid peer certificate: UnknownIssuer because ureq/rustls uses bundled roots instead of the Windows certificate store. rustls-platform-verifier would fix that.
Summary
On a
proliteplan, the live read (chatgpt.com/backend-api/wham/usage) reports 0% used while the account is actually rate-limited. The notch shows "0% Used · 100% left" for a weekly window that is fully consumed.Windows 11, Codenotch v1.15.0.
Live endpoint response
Rollout log (the real numbers)
The limit that actually blocks the user is model-level (
GPT-5.3-Codex-Spark) and is not represented in the live payload. Because the live path takes priority, the correct value from the rollout is discarded.Suggestion
When the live response has
secondary_window: nullbut a recent rollout carries asecondarywindow, prefer the rollout value (or surface both). Optionally also displaycredits.balance.Side note
With an HTTPS-inspecting antivirus (Kaspersky), the live read fails with
invalid peer certificate: UnknownIssuerbecause ureq/rustls uses bundled roots instead of the Windows certificate store.rustls-platform-verifierwould fix that.