Pro $100 (5x) plan is rate-limited as `plus` on Codex Desktop — access_token has plan_type=prolite but the responses API returns X-Codex-Plan-Type=plus
What version of the Codex App are you using (From “About Codex” dialog)?
26.616.41845 (core 0.142.0-alpha.6)
What subscription do you have?
ChatGPT Pro — $100 / 5x tier
What platform is your computer?
Darwin 25.5.0 arm64 arm (macOS 26.5.1)
What issue are you seeing?
My subscription is ChatGPT Pro ($100 "5x" tier). The ChatGPT web Codex shows the
correct Pro usage allowance for this account. But when I use Codex Desktop (ChatGPT
login, calling the /v1 responses API), the server rate-limits me as "plus" and
repeatedly returns 429 usage_limit_reached, even though the account is barely used.
The key inconsistency, on the same request:
- The OAuth access_token my client sends to https://api.openai.com/v1 carries the
claim: chatgpt_plan_type = "prolite" (the Pro 5x tier — correct)
- The rate-limit response header for that same request returns:
X-Codex-Plan-Type = "plus"
Exact error (HTTP 429), PII removed:
{
"type": "error",
"error": {
"type": "usage_limit_reached",
"message": "The usage limit has been reached",
"plan_type": "plus"
},
"status_code": 429
}
Response headers:
X-Codex-Plan-Type: plus
X-Codex-Active-Limit: premium
X-Codex-Primary-Used-Percent: 100 (5-hour window, 300 min)
X-Codex-Secondary-Used-Percent: 42 (weekly window, 10080 min)
X-Codex-Credits-Balance: 0
So OpenAI's own token says "prolite" while OpenAI's own rate limiter treats the
request as "plus".
What steps can reproduce the bug?
- Be on the ChatGPT Pro $100 (5x) plan, i.e. plan_type "prolite" (mine activated
the day before this started).
- Sign in to Codex Desktop using ChatGPT login (auth_mode=Chatgpt; originator=
Codex_Desktop; wire_api=responses).
- Run a few turns with model gpt-5.5.
- Within a small number of requests the 5-hour "premium" window reports
X-Codex-Primary-Used-Percent: 100 and the API returns 429 usage_limit_reached
with X-Codex-Plan-Type: plus.
- At the same time, open Codex on the web for the same account — it shows the
correct Pro allowance and is not exhausted.
Context: the account had only ~30 total requests over a week, yet the 5-hour
window is pinned at 100% while the weekly window is only at 42% — consistent with
"plus"-sized 5-hour limits being applied instead of Pro 5x. (Session ID and token/
context usage can be provided privately on request.)
What is the expected behavior?
A Pro $100 (5x) account (plan_type "prolite") should receive Pro 5x Codex usage
limits (5x of Plus) on the Codex Desktop / responses-API path, and the rate-limit
header should reflect the Pro tier — not "plus". Behavior should match what the
ChatGPT web Codex already shows for the same account.
Additional information
- This is purely on the Codex responses-API rate-limiter path. Web Codex shows the
correct Pro quota for the same account, so the subscription/entitlement itself is
correct — only the Codex rate limiter mis-maps the tier.
- Re-authenticating does not help: a fresh access_token still correctly carries
chatgpt_plan_type=prolite, and the API still returns X-Codex-Plan-Type=plus.
- This may be a recognition/sync gap for the newly introduced Pro $100 (5x /
"prolite") tier on the Codex rate limiter. If it is a known propagation delay for
new Pro accounts, please confirm the expected timeline.
- Possibly related to existing "phantom usage limit" reports (capacity healthy on
web/status, but CLI/Desktop still returns usage_limit_reached).
6 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
yes, I have same problem. first I update to plus, the codex desktop show free. then I update to pro, the app show pro but I can't continue use it.
I upgraded from Plus to Pro, but it still shows Plus here, and more importantly, it’s completely unusable.
<img width="1457" height="518" alt="Image" src="https://github.com/user-attachments/assets/c13cd13d-ebf9-42e1-88ea-a2b52ff9b972" />
This needs a plan-resolution receipt on the failing request. Capture non-secret fields: account id hash, client surface/version, access-token plan claim, server-resolved
X-Codex-Plan-Type, active limit window id, model, request id, and response timestamp.Then support can tell whether Desktop sent the right identity but the quota service resolved
plus, or whether the client is using stale auth/account state. Without that split, users only see contradictory "Pro token, plus limiter" evidence.---
_Generated with ax._
Why don’t they make an official announcement instead of doing this?
They even banned my account
Duy Nguyen @.***>于2026年6月23日 周二10:03写道: