Client or integration
Codex CLI (installed via Scoop, v0.153.0) using ChatGPT login, routed through the opencodex proxy (default provider = openai passthrough).
Version
opencodex 2.40.0 (codex-cli 0.153.0)
Operating system
Windows 11 Pro 24H2 (build 26100, x64)
Area
Authentication / entitlement / model catalog (account-gated native models)
Summary
A valid ChatGPT Plus account (subscription active 2026-08-22 → 2026-09-22) can use gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna:
- Without opencodex (native Codex):
codex exec -m gpt-5.6-luna "…" succeeds.
- Through opencodex 2.40.0: the same request fails with
401 Unauthorized: The selected ChatGPT account does not support this model.
ocx models live shows only the four non-gated native OpenAI rows (gpt-5.5 / gpt-5.4 / gpt-5.4-mini / gpt-5.3-codex-spark); the GPT-5.6 trio is missing.
This looks like a false-negative of the account-gated (fail-closed) entitlement projection, in the same family as #2886 / #3022 / #3023, and it is still reproducible on 2.40.0 even though the account is genuinely entitled (native requests succeed).
Reproduction
codex login with a Plus account that is entitled to GPT-5.6 (stored in ~/.codex/auth.json, plan=plus).
ocx status shows the main account as healthy with credentials.
ocx restore back so Codex routes through the opencodex proxy.
ocx models live: native OpenAI rows are only the four non-gated models; no gpt-5.6-*.
- Attempt to surface and use GPT-5.6 through opencodex:
ocx models enable gpt-5.6-sol → prints "Enabled", but the row is removed again on the next catalog sync (not durable).
ocx models add openai gpt-5.6-sol / ...-terra / ...-luna (custom rows) → visible in ocx models list-custom, and openai/gpt-5.6-* appear in the catalog.
codex exec -m gpt-5.6-luna "…" → ❌ 401 (below).
codex exec -m openai/gpt-5.6-luna "…" (namespaced custom row) → ❌ same 401.
- Control:
ocx restore back to native, then codex exec -m gpt-5.6-luna "…" → ✅ succeeds.
A/B matrix:
| Path |
Command |
Result |
| Native |
codex exec -m gpt-5.6-luna "…" |
✅ works |
| opencodex forward (bare id) |
codex exec -m gpt-5.6-luna "…" |
❌ 401 |
| opencodex forward (custom namespaced id) |
codex exec -m openai/gpt-5.6-luna "…" |
❌ 401 |
Logs / error output
ERROR: unexpected status 401 Unauthorized: The selected ChatGPT account does not support this model, url: http://127.0.0.1:10100/v1/responses
ocx models live:
gpt-5.5 [native, enabled]
gpt-5.4 [native, enabled]
gpt-5.4-mini [native, enabled]
gpt-5.3-codex-spark [native, enabled]
Redacted configuration
Relevant part of ~/.opencodex/config.json:
{
"providers": {
"openai": {
"adapter": "openai-responses",
"baseUrl": "https://chatgpt.com/backend-api/codex",
"authMode": "forward"
}
},
"defaultProvider": "openai"
}
Account: plan=plus, subscription 2026-08-22 → 2026-09-22; opencodex reports the main account as healthy, needsReauth=false (email / account id redacted).
Additional observations
Expected behavior
For a Plus account that is genuinely entitled to GPT-5.6, opencodex forwarding should behave like native Codex for gpt-5.6-sol/terra/luna:
ocx models live native rows should include the GPT-5.6 trio.
- Requests must not be fail-closed into a 401.
- A missing/unconfirmed roster must not be treated as proof that the account is unentitled.
Checks
Client or integration
Codex CLI (installed via Scoop, v0.153.0) using ChatGPT login, routed through the opencodex proxy (default provider = openai passthrough).
Version
opencodex 2.40.0 (codex-cli 0.153.0)
Operating system
Windows 11 Pro 24H2 (build 26100, x64)
Area
Authentication / entitlement / model catalog (account-gated native models)
Summary
A valid ChatGPT Plus account (subscription active 2026-08-22 → 2026-09-22) can use
gpt-5.6-sol/gpt-5.6-terra/gpt-5.6-luna:codex exec -m gpt-5.6-luna "…"succeeds.401 Unauthorized: The selected ChatGPT account does not support this model.ocx models liveshows only the four non-gated native OpenAI rows (gpt-5.5 / gpt-5.4 / gpt-5.4-mini / gpt-5.3-codex-spark); the GPT-5.6 trio is missing.This looks like a false-negative of the account-gated (fail-closed) entitlement projection, in the same family as #2886 / #3022 / #3023, and it is still reproducible on 2.40.0 even though the account is genuinely entitled (native requests succeed).
Reproduction
codex loginwith a Plus account that is entitled to GPT-5.6 (stored in~/.codex/auth.json, plan=plus).ocx statusshows the main account as healthy with credentials.ocx restore backso Codex routes through the opencodex proxy.ocx models live: native OpenAI rows are only the four non-gated models; nogpt-5.6-*.ocx models enable gpt-5.6-sol→ prints "Enabled", but the row is removed again on the next catalog sync (not durable).ocx models add openai gpt-5.6-sol/...-terra/...-luna(custom rows) → visible inocx models list-custom, andopenai/gpt-5.6-*appear in the catalog.codex exec -m gpt-5.6-luna "…"→ ❌ 401 (below).codex exec -m openai/gpt-5.6-luna "…"(namespaced custom row) → ❌ same 401.ocx restoreback to native, thencodex exec -m gpt-5.6-luna "…"→ ✅ succeeds.A/B matrix:
codex exec -m gpt-5.6-luna "…"codex exec -m gpt-5.6-luna "…"codex exec -m openai/gpt-5.6-luna "…"Logs / error output
ocx models live:Redacted configuration
Relevant part of
~/.opencodex/config.json:{ "providers": { "openai": { "adapter": "openai-responses", "baseUrl": "https://chatgpt.com/backend-api/codex", "authMode": "forward" } }, "defaultProvider": "openai" }Account: plan=plus, subscription 2026-08-22 → 2026-09-22; opencodex reports the main account as healthy,
needsReauth=false(email / account id redacted).Additional observations
ocx statusshows the main account healthy;/api/codex-auth/accountsreturns{ id: "__main__", plan: null, hasCredential: true, needsReauth: false, health: "healthy" }(plan readsnull, which may be why the entitlement/roster projection cannot confirm GPT-5.6).Expected behavior
For a Plus account that is genuinely entitled to GPT-5.6, opencodex forwarding should behave like native Codex for
gpt-5.6-sol/terra/luna:ocx models livenative rows should include the GPT-5.6 trio.Checks