Skip to content

[Bug][2.35][Codex App] Entitled GPT-5.6 Sol/Terra/Luna disappear from the native catalog #2886

Description

@stud-f

Client or integration

Codex App

Area

Authentication and account pool

Summary

After upgrading from OpenCodex 2.20.0 to 2.35.0, the native OpenAI models below disappear from both ocx models live and the Codex App model picker:

  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna

The authenticated ChatGPT account is a healthy Plus account:

plan=plus
active=true
needsReauth=false
WHAM reachability: status=200, authenticated

This account is actually entitled to GPT-5.6:

  • stopping OpenCodex and restoring native Codex routing makes GPT-5.6 immediately reappear;
  • a fresh native gpt-5.6-sol conversation completes successfully;
  • OpenCodex 2.33.0 also advertises Sol/Terra/Luna for the same account, and Sol completes successfully.

Expected: a healthy account that can actually use these models should retain all three independent native catalog rows under OpenCodex routing.

Reproduction

  1. Sign in to Codex with a ChatGPT Plus account that can use GPT-5.6.
  2. Verify under native Codex routing that GPT-5.6 appears and a fresh gpt-5.6-sol request completes.
  3. Install and start OpenCodex 2.35.0 with the same account.
  4. Fully restart Codex App.
  5. Run:
ocx models live
  1. Observe that the native OpenAI portion contains only:
gpt-5.5
gpt-5.4
gpt-5.4-mini
gpt-5.3-codex-spark
  1. Sol/Terra/Luna are absent from the live catalog and the Codex picker.
  2. Attempts to enable them manually fail:
ocx models enable gpt-5.6-sol
ocx models enable gpt-5.6-terra
ocx models enable gpt-5.6-luna

Each returns:

Error: invalid model visibility target
  1. Stop OpenCodex, restore native routing, and fully restart Codex App. GPT-5.6 reappears and a fresh Sol request succeeds.
  2. Run OpenCodex 2.33.0 with the same account. Sol/Terra/Luna return to ocx models live, and a fresh Sol request succeeds.

Controlled result:

Routing/version Catalog Real request
OpenCodex 2.35.0 Sol/Terra/Luna absent Cannot select them normally
Native Codex, same account GPT-5.6 present Fresh Sol request succeeds
OpenCodex 2.33.0, same account Sol/Terra/Luna present Fresh Sol request succeeds

Version

2.35.0

Operating system

Windows 11 Home 24H2, build 26100, x64

Codex runtime: 0.146.0

Provider and model

Canonical OpenAI provider using ChatGPT login:

  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-5.6-luna

Logs or error output

$ ocx models live

gpt-5.5
gpt-5.4
gpt-5.4-mini
gpt-5.3-codex-spark
$ ocx models enable gpt-5.6-sol
Error: invalid model visibility target

$ ocx models enable gpt-5.6-terra
Error: invalid model visibility target

$ ocx models enable gpt-5.6-luna
Error: invalid model visibility target

In the generated catalog, Terra and Luna can still occur as migration targets, but not as independent selectable slugs. This is therefore not only a stale Codex App picker cache.

Screenshots and supporting files

The version/routing A/B matrix is included above. Additional redacted catalog excerpts can be supplied if needed.

Redacted configuration

{
  "providers": {
    "openai": {
      "adapter": "openai-responses",
      "baseUrl": "https://chatgpt.com/backend-api/codex",
      "authMode": "forward"
    }
  }
}

Suspected regression boundary

This appears to be a false-negative entitlement/catalog projection rather than an actual account entitlement failure.

PR #2550 added gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna to ACCOUNT_GATED_NATIVE_OPENAI_MODELS, making them fail closed when no confirmed per-account roster is available:

#2550

That change is not present in v2.33.0 but is present in v2.35.0. This matches the observed version boundary, but I am not claiming that #2550 is the final root cause until the roster/cache path is traced.

Related reports are not exact duplicates:

Expected behavior

When the authenticated account's actual Codex entitlement supports these models, OpenCodex should:

  1. retain Sol/Terra/Luna as independent live catalog rows;
  2. expose them in the Codex App picker;
  3. allow them to be selected and routed;
  4. avoid treating a missing or stale entitlement snapshot as proof that a healthy, actually entitled account is unentitled.

Checks

  • I searched existing open and closed issues, pull requests, and documentation.
  • I removed emails, account IDs, OAuth tokens, API keys, request IDs, and personal filesystem paths.

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 workingcatalogModel catalog, slugs, visibility, routed entries

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions