---
title: "Why did your model leave Copilot or Codex, and what replaces it?"
description: "GPT-5.5 left Codex for ChatGPT sign-ins on October 14, Copilot removed 6 models on October 19, and 3 more leave on November 16. Here is each model's replacement and where to change its name."
url: https://ihsanalapsi.dev/articles/ai-model-retirements-codex-copilot
lang: en
date: 2026-10-21
updated: 2026-10-25
tags: ["AI", "Developer tools"]
author: Ihsan Alapsi (إحسان العبسي)
---
# Why did your model leave Copilot or Codex, and what replaces it?

If you opened Copilot Chat or Codex this week and did not find the model you are used to in the model list, the reason is most likely model retirements from two sides: OpenAI in Codex, and GitHub in Copilot, and each side has its own table of replacements. And the replacement itself is not available to everyone: in Codex it depends on your plan, how you sign in and the app, and in Copilot on your plan.

## What left Codex on October 14, and who was affected?

GPT-5.5 left Codex on October 14, 2026 at 19:00 UTC, but only for people signed in with a ChatGPT account. The OpenAI API and Codex sessions signed in with an API key were not affected.

The replacement depends on your plan, as [the models page in the Codex documentation](https://learn.chatgpt.com/docs/models) says:


| Your plan                               | Replacement                                         | Name in the settings         |
| --------------------------------------- | --------------------------------------------------- | ---------------------------- |
| Plus, Pro, Business, Enterprise and Edu | GPT-6.1 Sol, if available for your plan and the app | `gpt-6.1-sol`                |
| Free and Go                             | GPT-6 Luna in the desktop app, if available         | `gpt-6-luna`                 |
| Signing in with an API key              | No change                                           | `gpt-5.5` is still available |


On Enterprise and Edu there is an extra step: GPT-6.1 Sol is off by default until the admin turns it on. And [the workspace model availability page](https://learn.chatgpt.com/docs/enterprise/workspace-model-availability) says plainly that changing the default model does not give anyone access to it, so writing `gpt-6.1-sol` in your settings does not unlock it for your account.

This is not the first batch in Codex either. `gpt-5.4` and `gpt-5.4-mini` left for people signed in with a ChatGPT account on August 31, 2026, and their replacements on the models page are now `gpt-6-sol` and `gpt-6-luna`, and on Enterprise and Edu the admin has to turn on Luna first. Before them, `gpt-5.3-codex-spark` left on September 14 from the desktop app, the CLI and the editor extension, according to [the Codex changelog](https://learn.chatgpt.com/docs/changelog#codex-2026-09-14-codex-spark-deprecation). And `gpt-5.2` and `gpt-5.3-codex` can no longer be selected in Codex if you are signed in with a ChatGPT account, since May 26, 2026. If you still have a script that asks for one of them, change it in the same round.

And if you switched in July to `gpt-5.6-terra` or `gpt-5.6-luna` following [the first announcement in the Codex changelog](https://learn.chatgpt.com/docs/changelog#codex-2026-07-31), these are still available in Codex: the models page says GPT-5.6 Sol, Terra and Luna stay available during the current rollout. The November 16 batch is for Copilot only.

## Which models left GitHub Copilot on October 19?

GitHub removed 6 models on October 19, 2026 from most parts of Copilot: Chat, inline edits, ask and agent modes, and code completions. And for each of them GitHub suggested a replacement by name.

These are the replacements according to [the retirement announcement itself](https://github.blog/changelog/2026-10-19-github-copilot-models-deprecated-on-october-19-2026):


| Model that left  | Suggested replacement |
| ---------------- | --------------------- |
| Gemini 3.7 Flash | Gemini 3.8 Flash      |
| GPT-5.5          | GPT-6.1 Sol           |
| GPT-5.4          | GPT-6.1 Sol           |
| GPT-5.4 mini     | GPT-6 Luna            |
| GPT-5 mini       | GPT-6 Luna            |
| Grok 4.5         | Grok 4.7              |


If you moved your team in September, go back and check the replacements. [The first announcement on September 18](https://github.blog/changelog/2026-09-18-upcoming-deprecation-of-selected-github-copilot-models-in-mid-october/) suggested GPT-5.6 Sol instead of GPT-5.5 and GPT-5.4, GPT-5.6 Luna instead of the two mini versions, and Grok 4.6 instead of Grok 4.5. The October 19 announcement changed the suggestions to the ones in the table. GPT-5.6 Sol is still supported, so nothing is broken on your side, but the newest suggestion is now GPT-6.1 Sol.

[The supported models page in the GitHub documentation](https://docs.github.com/en/copilot/reference/ai-models/supported-models) still lists Grok 4.5 among the available models as of October 21, and its retirement table includes only the other 5 models. The announcement says it left on October 19, so treat it as gone and replace it with Grok 4.7.

And if you have Copilot Pro, the plans table on the same page does not include GPT-6.1 Sol. So if you were using GPT-5.5 or GPT-5.4, the replacement in your plan from GitHub's suggestions is GPT-6 Luna. The same table puts Gemini 3.8 Flash and Grok 4.7 in the Pro plan.

## What is leaving Copilot on November 16?

3 models are leaving every part of Copilot on November 16, 2026: Claude Opus 4.8 and Claude Opus 5, replaced by Claude Opus 5.5, and GPT-5.6 Terra, replaced by GPT-6.1 Sol or GPT-6 Luna.

There is one exception according to [the October 15 announcement](https://github.blog/changelog/2026-10-15-upcoming-deprecation-of-selected-github-copilot-models-in-mid-november): Claude Opus 4.8 stays for individual Copilot subscribers on annual plans, so they still have an Opus option. The announcement does not say how long this exception lasts.

On Business and Enterprise plans, the replacements turn on by themselves under default model enablement, unless the admin turned off the general setting or disabled the model itself.

And on Copilot Pro, the plans table in the GitHub documentation includes neither Claude Opus 5.5 nor GPT-6.1 Sol, so the replacement for GPT-5.6 Terra in your plan is GPT-6 Luna. And Claude Opus 4.8 and Claude Opus 5 are not in the Pro plan in the same table to begin with.

Claude Opus 5.5, GPT-6.1 Sol and GPT-6 Luna are already marked GA on the supported models page. So if the replacement is in your plan, there is no reason to wait for the deadline to switch.

## Where might the old model name still be written?

The model name lives in more places than the model list in your editor: config files on your machine and in the repo, agent files, and scripts.

In [the GPT-5.5 retirement announcement](https://learn.chatgpt.com/docs/changelog#codex-2026-10-14-gpt-55-retirement), OpenAI listed 6 places: workspace defaults, saved settings, managed settings, custom agents, scheduled tasks, and scripts. These are the files that match them in each tool.

### In Codex

According to [the config file documentation](https://learn.chatgpt.com/docs/config-file/config-basic), [the custom agents documentation](https://learn.chatgpt.com/docs/agent-configuration/subagents) and [the managed configuration documentation](https://learn.chatgpt.com/docs/enterprise/managed-configuration):

- `~/.codex/config.toml` on your machine, and `.codex/config.toml` inside the repo (Codex reads it only if the project is trusted), and profile files such as `~/.codex/profile-name.config.toml` that you select with `--profile`. The key in all of them is `model`.
- Custom agent files in `~/.codex/agents/` and `.codex/agents/`: each file can have its own `model`. There is also `agents.default_subagent_model` in the config file.
- Managed settings: `/etc/codex/config.toml` and `/etc/codex/managed_config.toml` on Linux and Mac, and the settings the admin pushes from Agent security in the admin console.
- Scripts and CI files: any `codex exec --model` or `-m`, and any `-c` or `--config` that changes the model.

### In Copilot

- Custom agents: `.github/agents/*.agent.md` in the repo and `~/.copilot/agents/` on your machine, with the `model` field in the frontmatter according to [the custom agents configuration reference](https://docs.github.com/en/copilot/reference/custom-agents-configuration). Copilot CLI also reads `.claude/agents/`.
- Prompt files in VS Code: `.github/prompts/*.prompt.md`, which have an optional `model` field.
- Copilot CLI: `.github/copilot/settings.json` and `.github/copilot/settings.local.json` in the repo, `~/.copilot/settings.json` on your machine, and the `--model` option and the `COPILOT_MODEL` variable in scripts and CI.

### Find them with two commands

```bash
P='gpt-5\.5|gpt-5\.4|gpt-5[ -]mini|gpt-5\.2|gpt-5\.3[ -]codex|gemini[ -]3\.7|grok[ -]4\.5|opus[ -]4\.8|opus[ -]5([^.]|$)|5\.6[ -]terra'
grep -rniE "$P" . --exclude-dir=node_modules --exclude-dir=.git
grep -rniE "$P" ~/.codex ~/.copilot /etc/codex --include='*.toml' --include='*.md' --include='settings.json' 2>/dev/null
```

The first command searches the repo, and the second your machine's settings. The second reads only `.toml`, `.md` and `settings.json` files, so it does not go into the session logs in `~/.codex/sessions`. And it works on zsh and bash even if you have only one of the two tools. The search catches the name with a space or a hyphen, such as `GPT-5.4 mini` and `gpt-5.4-mini`, and does not catch the replacements such as `claude-opus-5.5` or `gpt-6.1-sol`.

Read every line before you change it, because the search also catches names that still work. `GPT-5.4 nano` is not retired in Copilot yet. And `GPT-5.3-Codex` is still supported in Copilot, and it is the model Copilot falls back to if nothing else is available, so change it in Codex files only. And `gpt-5.6-terra`, if it shows up in Codex files, is still available there, and its November 16 date applies to Copilot only.

The search is needed even if you have not seen a single error. According to [the Copilot CLI command reference](https://docs.github.com/en/copilot/reference/copilot-cli-reference/cli-command-reference), a custom agent that asks for an unusable model runs on the session's model instead of failing, unless it sets `modelPolicy: "required"`, in which case it refuses to run. So your agent may be running right now on a model other than the one you wrote in its file, and everything looks normal.

## What does the admin need to do so the team sees the replacement?

On Copilot Business and Enterprise, the replacement shows up by itself if default model enablement is on, and if the admin turned it off they have to enable each replacement in the model policy. In Codex, the admin on Enterprise and Edu plans has to turn on GPT-6.1 Sol themselves.

If you have an individual Copilot plan, there are no policies to set: models come to you based on your plan. The enterprise owner enables the replacements like this, according to [the documentation on managing models in an enterprise](https://docs.github.com/en/enterprise-cloud@latest/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-availability-of-default-models):

1. Open the enterprise on GitHub, click AI controls at the top, then Copilot in the sidebar.
2. Click Configure models, and set each replacement to Enabled, or delegate the decision to organizations or teams.

After that, according to [the October 19 announcement](https://github.blog/changelog/2026-10-19-github-copilot-models-deprecated-on-october-19-2026), the admin opens the Copilot settings for their account and checks that the policy is enabled for the model, and then the model shows up in the model list in Copilot Chat in VS Code and on github.com. Except for Gemini 3.8 Flash and Grok 4.7: the clients table in the GitHub documentation lists them in the editors and Copilot CLI, and not on github.com.

The organization owner finds the option in the organization settings: Settings, then Copilot, then Models. If the organization belongs to an enterprise, they can change only the models whose decision the enterprise owner left to them.

If you have many organizations, there is now a way to do it in code. Since October 19, [the REST API for model policies](https://github.blog/changelog/2026-10-19-copilot-model-policy-api-for-enterprise-orgs-and-teams) is GA, with GET for reading and PATCH for changing, at 4 levels: the enterprise, enterprise teams, agent apps, and the organization (`/orgs/{org}/copilot/model-policies`). This is how you read the enterprise's current policy, as in [the documentation example](https://docs.github.com/en/enterprise-cloud@latest/rest/enterprise-admin/ai-controls):

```bash
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer $ENTERPRISE_TOKEN" \
  -H "X-GitHub-Api-Version: 2026-03-10" \
  https://api.github.com/enterprises/ENTERPRISE/copilot/model-policies
```

And this is how you enable a model:

```bash
curl -L -X PATCH \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer $ENTERPRISE_TOKEN" \
  -H "X-GitHub-Api-Version: 2026-03-10" \
  https://api.github.com/enterprises/ENTERPRISE/copilot/model-policies \
  -d '{"models":[{"model_name":"MODEL_NAME","policy_state":"enabled"}]}'
```

Take `MODEL_NAME` from the GET response itself, and do not type it from memory. The accepted values for `policy_state` are `enabled`, `disabled`, `delegate_to_teams_and_apps` and `delegate_to_organizations`. Put the token in the `ENTERPRISE_TOKEN` variable before you run the command. The PATCH needs the `admin:enterprise` scope for a classic token, reading is enough with `read:enterprise`, and a GitHub App token works if it has the Enterprise AI controls permission. The `GITHUB_TOKEN` that GitHub Actions gives you is not enough, because its permissions cover only the repo that contains the workflow, according to [the Actions documentation](https://docs.github.com/en/actions/concepts/security/github_token).

In Codex, the admin turns on GPT-6.1 Sol from the workspace model settings, and then replaces `gpt-5.5` in the default settings and the managed settings. The documentation also asks them to check that the replacement is available to users in every app they use, because changing the default alone does not unlock the model for anyone.

## How do you protect your app and tools from the next retirement?

Put the model name in configuration, not in code, with a ready replacement listed after it, in order. Retirements happen often: the retirement table in the GitHub documentation has 32 rows with dates from 2026 alone, from February 17 to October 19.

In VS Code and Copilot CLI you can set a list of models instead of one name. The `model` field in a custom agent file in VS Code accepts a list, and takes the first available model from it according to [the agent file reference](https://code.visualstudio.com/docs/agents/reference/custom-agent-file-reference). And in Copilot CLI, the `models` field takes the first model your plan can reach. This is how the field looks in an agent file for VS Code, as in the documentation example:

```yaml
model: ['<preferred model>', '<fallback model>']
```

Replace each one with the model name as it shows up in your model list.

The same idea applies to your app if it sends requests to a model from code. Any product that hardcodes the model name is affected when the provider removes that model, so put the ordered list in an environment variable, and let the app pick from it:

```typescript
const preferred = (process.env.AI_MODELS ?? "")
  .split(",")
  .map((m) => m.trim())
  .filter(Boolean);

export function pickModel(available: string[]): string {
  const model = preferred.find((m) => available.includes(m));
  if (!model) {
    throw new Error(`No configured model is available: ${preferred.join(", ")}`);
  }
  return model;
}
```

`available` is the list of models your account can reach, from the provider or from your settings. The app picks the first available model from your list, and if none is left it stops with a clear error instead of carrying on with something you did not choose. And log the name of the model that answered each request, so you know when the replacement became the one running.

The same goes for skills. The `SKILL.md` file of the skill that comes with the [AI SEO Guide](/products/ai-seo-guide) has no model field at all, so it runs in Codex or Claude Code on whatever model you picked in the agent, and needs no change when a model is retired.

And on the same principle I built the [Motion Graphics](/products/video-skill) skill for coding agents: its file has no model field either.

## Where do you start now?

With the two search commands in the repo and on your machine, then in this order:

1. Save the search results to a file. You get every file that has an old name, with the line number.
2. Replace each name with its replacement. In agent files, use a list instead of a single name if the tool accepts one.
3. Open the model list in Copilot Chat, or `/model` in Codex CLI, and check that the replacement is there. If it is not, the admin has to enable it.
4. Run one agent or one scheduled task after the change, and check that it ran on the model you wrote.
5. Set a reminder before November 16 for the batch of Claude Opus 4.8, Claude Opus 5 and GPT-5.6 Terra.

The skills I make for coding agents are in the [AI skills](/products/c/ai-skills) section. And you, what was the first file your search turned up?

## FAQ

**Will my app that uses GPT-5.5 through the API stop working?**

No, not in this batch. The Codex documentation says GPT-5.5 is still available in the OpenAI API and in Codex sessions signed in with an API key. What left is Codex for people signed in with a ChatGPT account only.

**I have an individual Copilot plan on an annual subscription. Will I lose Claude Opus 4.8?**

No, if you already have it. According to GitHub's announcement on October 15, 2026, Claude Opus 4.8 stays available to individual Copilot subscribers on annual plans after November 16, and the plans table in the documentation puts it in Pro+ and Max, not in Pro. Claude Opus 5 and GPT-5.6 Terra are leaving with no exception. And the announcement does not say how long Opus 4.8 stays for these subscribers.

**Do I have to remove the old models from my Copilot settings by hand?**

No. GitHub says retired models are removed automatically. What is on you is changing the name in your files and scripts, and making sure the replacement is enabled if the admin turned off default enablement.

**If I moved to GPT-5.6 Sol in September following the first announcement, do I have to move again?**

Not right away. GPT-5.6 Sol is still in the list of supported models in the GitHub documentation as of October 21, and it is not in the November 16 batch. But the October 19 announcement now suggests GPT-6.1 Sol instead of GPT-5.5 and GPT-5.4.

**Why can't I see GPT-6.1 Sol in Codex even though I have Enterprise?**

Most likely because GPT-6.1 Sol is off by default on Enterprise and Edu until the admin turns it on, according to the Codex documentation, and writing its name in the config file does not unlock it for you. Also check that you are signed in with a ChatGPT account in the desktop app or the CLI, because the rollout runs on those.

**Is there a date for GPT-5.6 Terra to retire from Codex?**

No, not as of October 21. The models page in the Codex documentation says GPT-5.6 Sol, Terra and Luna stay available during the current rollout with no date after it, and the Codex changelog has no retirement announcement after GPT-5.5. The November 16 date for GPT-5.6 Terra applies to Copilot only.
