Skip to content

[Bug][2.40.0][Codex CLI/App] Plus account entitled to GPT-5.6 works natively but opencodex forwarding returns 401 "selected ChatGPT account does not support this model" #3352

Description

@ZhenyuXiao

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

  1. codex login with a Plus account that is entitled to GPT-5.6 (stored in ~/.codex/auth.json, plan=plus).
  2. ocx status shows the main account as healthy with credentials.
  3. ocx restore back so Codex routes through the opencodex proxy.
  4. ocx models live: native OpenAI rows are only the four non-gated models; no gpt-5.6-*.
  5. 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.
  6. 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:

  1. ocx models live native rows should include the GPT-5.6 trio.
  2. Requests must not be fail-closed into a 401.
  3. A missing/unconfirmed roster must not be treated as proof that the account is unentitled.

Checks

Activity

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

    account-poolOAuth, credentials, Codex pool, quota, failover, plansbugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions