Moving Codex Off GPT-5.5 Before It Retires
GPT-5.5 retires from ChatGPT, ChatGPT Work and Codex on October 14, 2026, on every plan — consumer, Business, Enterprise and Edu. If you use Codex signed in with ChatGPT, every place that still names gpt-5.5 needs a replacement before then, and the places are more scattered than a single config file. This is the checklist, in the order that catches the most breakage first.
Who this affects, and who it doesn't
The retirement applies to Codex with ChatGPT sign-in. It does not apply to the OpenAI API, and Codex authenticated with your own API key keeps whatever models that key's organization and project can reach — so a team that runs Codex on API keys can keep GPT-5.5 after the date. If your team mixes the two, the same config.toml can keep working for one person and stop working for another, which is worth knowing before anyone files a bug.
Pick the replacement OpenAI names for your plan
OpenAI names a specific successor per plan. On Plus, Pro, Business, Enterprise and Edu, it's GPT-6 Sol (gpt-6-sol). On Free and Go, it's GPT-6 Luna (gpt-6-luna), in the desktop app. Those are the safe defaults because they're the models OpenAI has committed to making available as replacements; GPT-6 Sol vs GPT-5.5 shows what the switch changes, row by row.
They aren't the only reasonable choice. For complex coding work, OpenAI's own recommendation in Codex is GPT-6.1 Sol where your account and client have it — it's also the CLI's default, so removing the model line from your config entirely is a legitimate migration. Pick deliberately rather than by search-and-replace: a replacement that's cheaper per token but needs more turns on your tasks isn't cheaper in practice.
Enterprise and Edu: enable before you switch
In Enterprise workspaces, GPT-6 Sol and GPT-6 Luna were off by default at launch, and an administrator must enable each model before members can select it; GPT-6.1 Sol is off by default in Enterprise and Edu until an administrator enables it too. OpenAI is explicit that changing a default doesn't grant access. Enable the replacement for the affected users first, confirm it appears on each client people actually use, and only then change workspace defaults — otherwise the new default points at a model nobody can run.
The checklist: every place a model name hides
OpenAI's own list is workspace defaults, saved model settings, managed configurations, custom agents, scheduled tasks, and scripts that select a model. In practice that breaks down into:
- Your
config.toml. The top-levelmodelkey, and themodelinside every profile. A profile you rarely use is exactly the one that breaks silently. - Scripts and CI jobs. Any
codex execcall that passes-mor--model, plus environment variables and job definitions that feed a model name into one. - Custom agents and scheduled tasks. These carry their own model settings and won't follow a change to your default.
- Workspace defaults and managed configuration. For admins: the starting model for Work and Codex, and any managed configuration that pins one.
- Saved model settings in the desktop app and IDE extension.
A plain-text search across your home config directory, your repositories and your CI definitions for gpt-5.5 is the fastest first pass. Review each match rather than replacing blindly, since the same string appears inside other model ids.
The other local clients
The ChatGPT desktop app, the CLI and the IDE extension read the same config.toml, so one edit there covers all three. Model choices saved through the desktop app's picker are separate saved settings, though, and OpenAI lists them separately for a reason: check each client people actually use, especially on shared machines, where someone else's saved choice may still point at GPT-5.5 after your config file is clean. In a managed workspace, check managed configuration as well — OpenAI names it among the places the old model can hide.
Check the settings that don't carry over
A model change isn't only a name change. Reasoning effort is the first thing to re-check: GPT-6 Sol accepts the same none-to-xhigh range GPT-5.5 does and adds max above it, so existing settings keep working, but OpenAI notes that efforts don't map exactly between generations — try a familiar task at your current setting and one level lower. If you move to GPT-6.1 Sol instead, none isn't accepted at all. On the API side, prompt caching changes shape too: from GPT-5.5 or earlier, prompt_cache_retention is replaced by prompt_cache_options.ttl, and cache writes start being billed at their own rate. What doesn't transfer when you change models covers the rest.
Test on a real task before the date, not after
Run a representative task on the replacement while GPT-5.5 is still available, so you can compare the two on the same work. Watch turns per finished task and total usage rather than the per-token price: GPT-6 Sol and GPT-6.1 Sol are both cheaper per token than GPT-5.5 on input and output, but a task's real cost is what it takes to finish it. /status shows the model a session is really running, which is worth confirming after the switch — a stale profile can quietly put you back where you started.
If something still says gpt-5.5 after the date
OpenAI doesn't describe what a request for a retired model does after the date, so don't count on a quiet fallback — treat any remaining reference as broken. The fix is the same checklist, run under pressure: find the remaining reference, replace it, and confirm with /status. GPT-5.5 leaving Codex covers that failure, and the model retirement schedule lists what left before GPT-5.5 — GPT-5.4 and GPT-5.4 Mini on August 31, 2026, GPT-5.3 Codex Spark on September 14, 2026 — in case an older name is still lurking in the same files.
Verified 2026-10-01 against CodexHow facts module (src/data/facts/) — see /about/#accuracy.