Codex Retires July 23. Opus 4.7 Fast Mode Has No Fallback.

OpenAI retires Codex snapshots on July 23, 2026 and Anthropic removes Opus 4.7 fast mode on July 24. Here is the migration checklist to run before both cutoffs.

Codex Retires July 23. Opus 4.7 Fast Mode Has No Fallback.

Two hard model cutoffs land within 48 hours of each other, on July 23 and July 24, 2026, and neither one degrades gracefully. On July 23, 2026, OpenAI shuts down a batch of legacy Codex-lineage snapshots. On July 24, 2026, Anthropic removes fast mode from Opus 4.7 — and after that, the request does not fall back to standard speed, it returns a hard error. If you pin model IDs anywhere in production, this is a two-day window you plan for now, not on Thursday morning when a deploy starts throwing 400s.

We pin model IDs across our own production stack, and when we audited it for this cutover we found three services still calling claude-opus-4-7 with speed: "fast" and two build scripts hard-coded to a Codex snapshot on the July 23 shutdown list — every one of them a silent failure waiting for a mid-week deploy.

That audit is the whole point of this piece. Below is the checklist we ran, in order: what to inventory, what to swap each ID to, and how to confirm the migration before the deadline hits instead of after. It applies whether you call these models directly on the API or through an IDE extension that pins them for you.

Prerequisites: know what you are actually running

Before you change a single line, you need an honest inventory. A forced migration is the cheapest moment to audit your model usage, because you are already paying the cutover cost (Developers Digest).

Two deadlines matter in the same 48-hour window: OpenAI retires legacy Codex-lineage model snapshots on July 23, 2026, and Anthropic removes fast mode from Opus 4.7 on July 24, 2026, with no automatic fallback.

Gather three things first:

  • Every place a model ID string is written down — application code, config files, CI/CD build scripts, IDE extension settings, and any internal SDK wrapper.
  • Which surface each call goes through. The Codex retirement hits the ChatGPT Codex product and the API deprecation schedule differently, so the same model name can mean two migration paths.
  • Your current spend per model, so you can tell whether the forced move helps or hurts your bill.

If you have never centralized model IDs, that is the real lesson of this cutover: a single constant or environment variable per model turns a cross-repo scramble into a one-line change. We wrote about the same discipline when we rebuilt our own model-cost plan after the Fable 5 billing shift.

Step 1 — Inventory every pinned model ID

Grep the entire codebase, not just the app. Model IDs hide in test fixtures, notebooks, and deploy scripts.

grep -rEn "gpt-5\.[0-3]-codex|gpt-5\.2|claude-opus-4-7" . \
  --include=*.{py,ts,js,json,yaml,yml,sh,env}

Expected output: a list of file:line hits. Failure mode: a zero-result run usually means your IDs are built by string concatenation ("gpt-5." + minor + "-codex") — search for the prefix alone and for any speed or fast flags too.

For every hit, record the model ID, the surface, and whether it is on a shutdown list. That table is your migration worklist.

Step 2 — Migrate the Codex snapshots before July 23

OpenAI's deprecations page lists a 2026-07-23 shutdown date for a set of legacy snapshots, each with a named substitute model to move to (OpenAI API deprecations). Separately, inside the ChatGPT Codex product, OpenAI has been retiring GPT-5.2 and GPT-5.3-Codex, pushing users onto GPT-5.5 as the general successor (OpenAI Developer Community, SecurityOnline).

To migrate off retired Codex snapshots, replace each deprecated model ID with the substitute OpenAI names on its deprecations page — for most code workloads that is GPT-5.5 — then re-run your evals, because the successor consumes tokens and reasoning time differently.

Do the swap surface by surface:

  • API callers: replace each deprecated snapshot with the exact substitute ID from the deprecations table. Do not guess the successor — the table names it.
  • Codex CLI / ChatGPT users: point workflows at GPT-5.5. First-party reports note it reasons longer and consumes more tokens than the 5.3-Codex it replaces, so budget for that (OpenAI Developer Community).

Failure mode to test for: a snapshot that still resolves but 404s on July 23. Send one live request per migrated ID before the cutoff; a pinned ID that resolves is not proof it survives the shutdown.

This is also the cheapest moment to re-evaluate the provider entirely — you are paying the eval cost either way, so testing a third model in the same run costs one more column in the spreadsheet. That framing is the same one we apply to any vendor cutover, the way we treated the Apple–OpenAI dispute as a diligence trigger.

Step 3 — Swap Opus 4.7 fast mode before July 24

Anthropic deprecated fast mode for Opus 4.7 on June 25, 2026, with removal set for July 24, 2026 (Anthropic changelog). This is the sharper of the two cutoffs. After removal, any request to claude-opus-4-7 carrying speed: "fast" returns a hard error — there is no silent fall-through to standard speed (CLSkills Hub).

The fix is a model-ID change, not a code rewrite:

- model: "claude-opus-4-7"
- speed: "fast"
+ model: "claude-opus-4-8"
+ speed: "fast"          # requires the fast-mode-2026-02-01 beta header

Fast mode is available for Opus 4.8 as a research preview on the Claude API: set speed: "fast" with the fast-mode-2026-02-01 beta header for up to ~2.5x higher output tokens per second at premium pricing (Anthropic — What's new in Opus 4.8).

To keep fast throughput after July 24, 2026, change the model ID from claude-opus-4-7 to claude-opus-4-8 and send the fast-mode-2026-02-01 beta header; the older model ID with a fast speed flag returns a hard error with no fallback.

The base swap is low-risk on cost. Opus 4.8 shipped on May 28, 2026 at the same $5 / $25 per million tokens list price as 4.7, while scoring meaningfully higher — 69.2% vs 64.3% on SWE-bench Pro — and running a 1M-token context by default on the API (Ofox, Qcode, genai unplugged). It has been generally available since late May, so this is a move to a shipped, mature model, not a beta gamble (Decode the Future).

Failure mode to test for: the beta header. Teams that change only the model ID and forget the fast-mode-2026-02-01 header get standard-speed billing and latency without an error — the request works, but you quietly lost fast mode.

Step 4 — Re-run evals and re-model the cost

A successor model is not a drop-in even when the price matches. GPT-5.5 reasons differently from the Codex snapshots it replaces, and Opus 4.8 makes more deliberate reasoning passes than 4.7. Both change your token consumption and latency profile.

Run the checklist to close:

  1. Re-run your own eval suite against every migrated ID. Do not trust benchmark deltas as a stand-in for your workload — measure on your tasks, the way we do when we compare models on cost per task rather than headline scores.
  2. Re-model spend from real post-migration token counts, not the old model's numbers.
  3. Redeploy and send one live probe per ID after each provider's cutoff has passed, to confirm nothing pinned a retired snapshot.
After migrating, re-run your evaluation suite and re-model cost using real post-migration token counts, because a successor model with the same list price can still consume tokens and reasoning time differently and change your bill.

Miss the window and the failure is not subtle: Codex calls start 404-ing on July 23, and Opus 4.7 fast-mode calls hard-error on July 24. Both are the kind of Thursday incident that a Tuesday audit prevents.

Frequently asked questions

What exactly happens on July 23, 2026? OpenAI shuts down a set of legacy model snapshots listed on its deprecations page, each mapped to a named substitute; requests to a retired snapshot stop resolving (OpenAI API deprecations).

What breaks on July 24, 2026? Fast mode is removed from Opus 4.7. A claude-opus-4-7 request with speed: "fast" returns a hard error with no fallback to standard speed (CLSkills Hub).

What do I migrate Opus 4.7 fast mode to? Change the model ID to claude-opus-4-8 and include the fast-mode-2026-02-01 beta header to keep fast throughput (Anthropic).

Is Opus 4.8 more expensive than 4.7? The base list price is the same, $5 / $25 per million input/output tokens; fast mode itself is billed at premium rates (Ofox).

Where do Codex users go after the sunset? GPT-5.5 is the general successor inside the Codex product; API workloads should use the specific substitute IDs named on the deprecations page (OpenAI Developer Community).

Conclusion

Neither of these cutoffs is technically hard — each is a model-ID change plus, for Opus, one beta header. What is hard is knowing every place a retired ID is pinned before the deadline turns it into an outage. Run the inventory grep before July 23, swap the IDs, add the header, re-run your evals, and probe each ID after the cutoff. If you want a second set of hands on a model migration or a durable model-routing layer that survives the next mandatory cutover, that is the kind of work we do.

Sources

  1. OpenAI — API deprecations
  2. Anthropic — What's new in Claude Opus 4.8
  3. Anthropic Claude Developer Platform changelog
  4. OpenAI Developer Community — GPT-5.2 and GPT-5.3-Codex sunset
  5. CLSkills Hub — Claude fast mode removed July 24
  6. Developers Digest — Migrating off retired GPT models in 2026
  7. Ofox — Opus 4.7 to Opus 4.8 migration
  8. genai unplugged — Claude Opus 4.8 migration guide
  9. Qcode — 2026 AI coding updates
  10. Decode the Future — Claude Opus 4.8 explained
  11. SecurityOnline — OpenAI legacy model deprecation

Share article

Share: