Windows app 26.707.31428 regression: active GPT-5.6 sessions fall back to "Custom", new sessions lose GPT-5.6 in the picker, and account/workspace state becomes inconsistent
Resolved 💬 10 comments Opened Jul 10, 2026 by Northern-Summer Closed Jul 13, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor)
responded on this thread — see the highlighted reply below.
What version of the Codex App are you using (From “About Codex” dialog)?
26.707.31428
What subscription do you have?
ChatGPT accounts/workspaces used on the same machine over time.
What platform is your computer?
Microsoft Windows NT 10.0.26200.0 x64
What issue are you seeing?
After updating the Codex app on July 10, 2026, the active-session model state and the new-session model catalog became inconsistent.
Observed behavior:
- Existing tasks created earlier in the day could still run on GPT-5.6 variants.
- The same tasks could show the model name as
自定义/Custominstead of the actual GPT-5.6 slug. - New tasks created after the update could no longer select GPT-5.6 from the model picker.
- Switching account/workspace on the same machine made model visibility, task visibility, and session continuity less reliable.
This blocked normal work because the app no longer gave a consistent answer to which model was active and which models were selectable.
Related issues:
- #31873 (/model does not list GPT-5.6 models that are available via -m)
- #27601 (Desktop hard quit required after account switching to recover hidden threads / slow resume)
What steps can reproduce the bug?
- Use Codex App on Windows.
- Use more than one ChatGPT account/workspace on the same machine over time.
- Have an older task already running a GPT-5.6 variant such as
gpt-5.6-luna. - Update the Codex app to
26.707.31428. - Continue the older task.
- Start a new task or open the model picker.
- Switch account/workspace and reopen or continue tasks.
Observed result:
- The older task can still run GPT-5.6.
- Its model label can degrade to
自定义/Custom. - GPT-5.6 can be missing from the picker for new tasks.
- Task/model/session visibility becomes less stable after account/workspace switching.
Real local task evidence from July 10, 2026:
- Morning task still bound to GPT-5.6: session
019f4992-0b41-7ef1-971e-f166be0998da, whereturn_contextrecordedmodel: gpt-5.6-luna. - Later task documenting the regression: session
019f4a36-aa19-7e43-907f-15edda3c21d0, where an older task was still using GPT-5.6 but the model name degraded toCustom, while new tasks could not select GPT-5.6 anymore. - Follow-up investigation task that ended in app instability: session
019f4a86-4029-7300-8b83-810663fc4f35with statussystemError. - Related task about model visibility and account interference: session
019f4a4a-d94a-73f2-b776-ac622b0165d5.
Additional local version/context evidence:
- App local files report
appVersion: 26.707.31428. - Affected app sessions recorded bundled
cli_version: 0.144.0-alpha.4. - The global CLI on this machine is
codex-cli 0.142.1.
What is the expected behavior?
- If an account/session can still run GPT-5.6, the app should show that model correctly instead of
Custom. - The model picker for new tasks should stay consistent with the effective model availability seen by active tasks for the same account/workspace.
- Updating the app should not leave old tasks, new-task model selection, and account/workspace state on different sources of truth.
- Account/workspace switching should not silently break task visibility, model visibility, or session continuity.
Additional information
- This report is based on real local tasks, not synthetic repro only.
- I later managed to partially restore
gpt-5.6-sollocally in the cache, but that was only a workaround. The app should not require manual cache repair after an update.
10 Comments
Potential duplicates detected. Please review them and close your issue if it is a duplicate.
Powered by Codex Action
same
I can reproduce this issue on Windows. Additional diagnostics suggest that GPT-5.6 is being removed by the desktop frontend's remotely delivered model
whitelist, rather than by the bundled app-server or model entitlement.
### Environment
OpenAI.Codex 26.707.3748.0codex-cli 0.144.0-alpha.4codex-cli 0.144.1config.tomlmodel:gpt-5.6-solThe standalone CLI can see and use GPT-5.6, but the desktop model picker does not show it. A full application restart and Windows reboot did not resolve
the issue.
### Diagnostic evidence
Calling
model/listdirectly on the desktop-bundled app-server returns:gpt-5.6-sol:hidden=false,isDefault=truegpt-5.6-terra:hidden=falsegpt-5.6-luna:hidden=falseTherefore, the bundled runtime receives all three GPT-5.6 models and does not mark them as hidden.
Inspecting the desktop renderer shows that it reads Statsig dynamic config
107580212. The current network-fetched configuration is version22andcontains:
```json
{
"available_models": [
"gpt-5.5",
"gpt-5.4",
"gpt-5.4-mini",
"gpt-5.3-codex",
"gpt-5.2"
],
"use_hidden_models": true,
"default_model": "gpt-5.4"
}
Because use_hidden_models is enabled, the renderer filters the app-server model list through available_models. None of the GPT-5.6 model IDs are present
in that whitelist, so they are removed from the desktop picker even though model/list returns them with hidden=false.
I also repeated the bundled app-server test using the built-in official OpenAI provider, and it still returned all three GPT-5.6 models. This rules out a
custom inference relay as the source of the whitelist. The Statsig configuration is fetched independently over HTTPS from Statsig CDN endpoints.
The official models documentation currently lists GPT-5.6 Sol, Terra, and Luna as available in the ChatGPT desktop app:
https://developers.openai.com/codex/models
### Likely cause
This appears to be a desktop frontend rollout/configuration issue in Statsig dynamic config 107580212, rather than a local cache, installation,
configuration, bundled CLI, relay, or account entitlement problem.
Could the desktop rollout whitelist be updated to include:
Confirming the same behavior with a custom local Responses provider.
Environment:
model_catalog_jsoncontains visiblegpt-5.6-sol,gpt-5.6-terra, andgpt-5.6-lunaentriesThe Windows App picker shows the older catalog models through GPT-5.5, but none of the three GPT-5.6 entries. The configured 5.6 model may instead appear as
Custom. Prefixing the catalog display names confirmed that the App reads our custom catalog labels, but it still omitted all 5.6 model IDs. Full App restarts did not change the behavior.This is consistent with the desktop-side model filtering described above rather than a Responses API or catalog parsing problem.
The comment is sent by an agent, behalf of @Menci.
Confirming your v22 payload from an independent side — same values on a fresh macOS install of 26.707.31428, anonymous session. Adding a length-preserving asar patch that defeats the filter without touching Statsig itself.
Filter location (Codex/ChatGPT.app
26.707.31428,com.openai.codex):webview/assets/app-initial~app-main~onboarding-page~...~k0ede4gb-C17KDkOa.js:$v(e)— zod-parsesuse_hidden_models,available_models,default_modeloff the Statsig dynamic-config payloaday()— readseee('107580212').valueJv({authMethod:e, availableModels:t, models:a, useHiddenModels:o})— the picker filter:``
js
``let l = o && e !== 'amazonBedrock';
a.forEach(n => { if (l ? t.has(n.model) : !n.hidden) { /* keep */ } });
Verify live (paste into DevTools console once you have one on the app):
For any non-ChatGPT-authed session (API-key, Azure, custom OpenAI-compatible) the whitelist branch runs and every
hidden:falsemodel thatapp-server model/listreturned —gpt-5.6-{sol,terra,luna}included — gets stripped, even though the CLI running from the same bundle can invoke them fine.One-byte shim (per-install; gets wiped by Sparkle):
Renames the string literal inside
$v()sosafeParse(e.use_hidden_models)misses and the field defaults tofalse. Length-preserving (asar header untouched), idempotent, reversible. Works becauseEnableEmbeddedAsarIntegrityValidationfuse is OFF on shipped builds.Fix at the source — any one of these:
Jv/ive: skip the whitelist branch whenauthMethod !== 'chatgpt'. Custom API-key providers shouldn't be gated by a ChatGPT-account-scoped rollout list.Jv/ive: unionavailableModelswithmodels.filter(m => !m.hidden)before thet.has()check, so provider-returned visible models can never be dropped.107580212targeting.Happy to help verify a fix if useful.
We are also seeing this behaviour and it is stopping our app users from using 5.6.
I can confirm the Statsig configuration is where the models disappear. On macOS Desktop
26.707.31428, a less invasive temporary workaround than modifyingapp.asaris to launch Codex with a fresh Electron profile and make the Statsig host unreachable only for that process:The fresh profile is important because the normal profile can continue using its cached Statsig payload. With no cached payload and the fetch failing, the renderer falls back to showing models returned by
model/listwithhidden: false. This restored the GPT-5.6 variants and visible custom-catalog models in the picker.This is clearly a workaround and may affect other Statsig-controlled features in the isolated profile. However, I think it conclusively demonstrates that config
107580212is causing the picker filtering: when the app cannot load that configuration and has no cached copy, the models appear.I think I found a workaround:
<img width="306" height="210" alt="Image" src="https://github.com/user-attachments/assets/a41f530d-8e0b-459d-98c5-3a1d069b61f6" />
A possible fix is to remove a stale
CODEX_CLI_PATHenvironment override, which can make the Windows app use an older standalone Codex runtime instead of its bundled one.Run in PowerShell:
Then fully close and reopen the ChatGPT/Codex app. This fixed the missing GPT‑5.6 models for me without resetting or reinstalling the app.
Closing this issue because the original blocking symptom is no longer present in my current environment: the GPT-5.6 entries are visible again in the Codex app model picker.
This closure means the issue is resolved for my account/environment and is no longer reproducible for me. It does not claim that the underlying Statsig/rollout inconsistency has been independently confirmed as fixed globally; other users may still be affected. If the problem returns, I can reopen the issue with updated app-version and account/workspace evidence.