Codex Says /status Is Fine
But Your Request Gets Rejected: The "Ghost Quota" Explained
The error text is "You've hit your usage limit," yet /status or your dashboard clearly shows quota left — since 2026-08-25, Codex Plus is bound by two limits at once, and that's the most common cause.
Four key facts
Two limits in force at once
Since 2026-08-25, Codex Plus is bound by the 5-hour rolling window and the weekly cap simultaneously; /status usually only foregrounds one of them, so the other running out is invisible.
Date Plus 5-hour window returned
OpenAI's engineering lead, Thibault Sottiaux, confirmed on X that the 5-hour rolling limit was re-enforced for the Plus tier on 2026-08-25.
$100/$200 Pro tiers unaffected
The same statement confirms both Pro tiers remain exempt from the 5-hour limit for the coming months — they're only bound by the weekly cap.
Figure out which layer you hit first
Account-level = this period's total quota is spent, wait for the weekly reset. Window-level = the 5-hour rolling window is full, usually clears in tens of minutes to a few hours on its own.
What the error text is actually telling you
The full message is usually "You've hit your usage limit" — and it doesn't distinguish whether you hit the 5-hour rolling window or the weekly cap. That's exactly where the "ghost" feeling comes from: dashboard progress bars are designed to surface whichever limit is closest and burning fastest, usually the 5-hour window. If you've already been eating into your weekly cap over the period, the UI doesn't necessarily flag both at once — until one of them fills up first, your request gets rejected, while the progress bar you're staring at still looks fine.
Latest development
According to OpenAI engineering lead Thibault Sottiaux's statement on X on 2026-08-25, restoring the 5-hour limit is mainly about two things: spreading out server load, and protecting occasional, lighter users from having capacity crowded out by a small number of accounts running heavy sessions non-stop. The 5-hour window and the weekly quota run in parallel, not as a replacement for each other — which is exactly why this page insists on separating account-level from window-level. The $100/$200 Pro tiers remain exempt from the 5-hour limit for the coming months.
Timeline
Codex has a quota anomaly and full reset; OpenAI later introduces the Banked Reset elastic mechanism (see our dedicated page).
OpenAI engineering lead Thibault Sottiaux confirms on X that the 5-hour rolling limit is re-enforced for the Plus tier; Pro remains unaffected for now.
The 5-hour window and weekly cap run in parallel; /status's display logic hasn't been adapted for this dual-limit setup, so reports of 'ghost quota' keep coming in.
Confirmed vs. needs your own verification
Confirmed
That the Plus tier's 5-hour rolling limit returned on 2026-08-25, runs in parallel with the weekly cap, and that Pro tiers are unaffected for now — all come from OpenAI engineering lead Thibault Sottiaux's official statement on X, echoed by multiple tech outlets.
Needs your own verification
OpenAI hasn't published a single, unified number for the specifics — how many calls the 5-hour window allows, or the exact weekly cap — and it may differ by account or plan. This page doesn't guess at specific numbers; check your own /status or dashboard for the figures that apply to you.
How to figure out which layer you hit
Window-level: the 5-hour rolling limit
The tell: get rejected, wait tens of minutes to a couple hours, retry, and it usually clears. If you've been calling heavily lately — long-running tasks, parallel agents — this is probably it.
Account-level: the weekly cap is spent
The tell: still rejected hours later, and this usually happens in the last few days of your billing cycle. This layer only clears at the account's weekly reset — waiting a while won't bring it back sooner.
A 3-step way to locate it
Step 1: after getting rejected, wait 30-60 minutes and retry — if it clears, you probably hit the 5-hour rolling window, not a ghost quota. Step 2: if you're still rejected hours later, check whether your account shows usage history for this period, and compare total consumption this week against your last reset. Step 3: if you're on a team/org plan, confirm whether this is your individual limit or the whole organization's shared pool that's exhausted — one person draining an org-level limit can affect the whole team, and it looks almost identical to an individual ghost quota.
What to do on QCode
If you can't tell which layer you hit and you're on a deadline, route the current task through one QCode key to a tier outside GPT, or to Claude, Gemini, and similar models, then switch back once you've confirmed whether it's window-level or account-level and when it actually recovers.
FAQ
Why does /status show green with headroom left, but my request still gets rejected?
Since 2026-08-25, the Plus tier is bound by both the 5-hour rolling window and the weekly cap at the same time. The /status progress bar usually only foregrounds one of them — when the other runs out, the UI doesn't necessarily turn red in sync. That's the most common cause.
Does this happen on the Pro tier too?
Per the official statement, the $100/$200 Pro tiers are exempt from the 5-hour rolling limit for the coming months, so in theory they're less likely to hit this ghost-quota effect — but they're still bound by the weekly cap, and if that's exhausted you'll see the same 'progress bar looks fine, request still rejected' pattern.
How long should I wait before retrying?
Wait 30-60 minutes first. If it clears after that, it's almost certainly the 5-hour rolling window. If you're still rejected hours later, it's probably the account-level weekly cap, and you'll need to wait for the weekly reset.
How is this different under a team/org plan versus an individual plan?
Org plans are usually a shared pool — if anyone on the team fills it up, everyone else will also see "You've hit your usage limit", even if their own account barely used anything. Check with your team admin whether it's the shared pool or your own individual limit first.
Can I get ahead of this by refreshing /status frequently?
It helps somewhat, but /status's own display logic is part of what causes this confusion in the first place, so don't rely on it entirely. It's more reliable to log the time of each rejection yourself and cross-reference it against your account's usage history.
Is this the same issue as Codex's earlier banked-reset quota anomaly?
No. Banked reset is the elastic reset mechanism introduced after the mid-July 2026 quota anomaly. This page is about the display confusion caused by two limits running in parallel after the 5-hour limit returned on 2026-08-25 — different background, see our dedicated Codex quota page for the earlier incident.
Sources
That the 5-hour rolling limit returned for the Plus tier on 2026-08-25, runs in parallel with the weekly cap, and that Pro is temporarily exempt — comes from OpenAI engineering lead Thibault Sottiaux's statement on X, corroborated by multiple tech outlets including TechRepublic and Notebookcheck, reported on 2026-08-25. This page was compiled and checked against these sources on 2026-08-27.
Don't get stuck when you can't tell which limit you hit
One QCode key switches to Claude, Gemini, GLM and more — switch back once you've confirmed the recovery time.
Related reading
Codex's quota anomaly and Banked Reset
Full record of the mid-July 2026 incident and the mechanics that followed.
Codex 5-hour rolling limit guide
How the 5-hour window works and its recovery timeline.
Claude 529 vs 429 vs Weekly Limit
How to tell apart the same kind of 'quota error' confusion on the Claude side.
This page is compiled from OpenAI's public official statements and is not an official OpenAI position. Specific quota rules, numbers, and recovery times are governed by your own /status and OpenAI's official documentation.