Skip to main content
OpenAI Model Shutdowns: gpt-4o and gpt-4.1 Go Dark Jan 14, 2027

OpenAI Model Shutdowns: gpt-4o and gpt-4.1 Go Dark Jan 14, 2027

KU
• 6 min read•1 view

OpenAI shut down o1, o3-mini, o4-mini and gpt-4-turbo on October 23, and the gpt-4o and gpt-4.1 families follow on January 14. Here is the full calendar and a migration plan that won't break production.

Key takeaways

  • OpenAI shut down o1, o3-mini, o4-mini, gpt-4-turbo, gpt-3.5-turbo and gpt-image-1 on October 23, 2026.
  • Next, gpt-4o snapshots, gpt-4o-mini, gpt-4.1 and gpt-4.1-mini shut down on January 14, 2027, with gpt-6-luna as the replacement.
  • TTS models follow January 6, realtime and audio January 20, and Whisper February 26.

OpenAI shuts down the gpt-4o snapshots, gpt-4o-mini, gpt-4.1, and gpt-4.1-mini on January 14, 2027, and recommends gpt-6-luna instead. That's the biggest retirement yet, because those are the default models in a huge share of production apps. If something broke on October 23, that was the previous wave: o1, o3-mini, o4-mini, gpt-4-turbo, and gpt-3.5-turbo are already gone.

You have about eleven weeks. That's enough time to migrate calmly, and not enough to leave it until the holidays, when most teams freeze deploys.

The full calendar

All dates are from OpenAI's deprecations page as of October 26, 2026. Fine-tuned models follow the schedule of their base model.

ShutdownModelsRecommended replacement
Oct 23, 2026 (done)gpt-4-turbo, gpt-4 (0613), gpt-4-1106-preview, gpt-4o-2024-05-13, o1, o3-minigpt-5.6-sol
Oct 23, 2026 (done)o4-mini, gpt-3.5-turbo (0125)gpt-5.6-terra
Oct 23, 2026 (done)gpt-4.1-nano, gpt-image-1gpt-5.6-luna; gpt-image-2.5-sunburst or -flare
Jan 6, 2027tts-1, tts-1-hd, gpt-4o-mini-tts snapshotsgpt-realtime-2.1-mini
Jan 14, 2027gpt-4o (2024-08-06, 2024-11-20), gpt-4o-mini, gpt-4.1, gpt-4.1-minigpt-6-luna
Jan 20, 2027gpt-realtime, gpt-4o-realtime, gpt-audio, gpt-4o-audio, and mini variantsgpt-realtime-2.1, gpt-audio-1.5
Feb 26, 2027whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, /v1/audio/translationsgpt-transcribe or gpt-live-transcribe

One wrinkle: the replacements named for the October wave (gpt-5.6-sol, gpt-5.6-terra) no longer appear on OpenAI's current models page, which now leads with the GPT-6 family, including gpt-6-luna and gpt-6.1-sol. If you are migrating today, evaluate the current models rather than a replacement that is itself being superseded.

Two side effects to note. Fine-tuned versions of these models die with their base. And on January 6, 2027, existing customers lose the ability to create new fine-tuning jobs, announced back in May. If your product depends on a fine-tuned gpt-4o-mini, you are migrating twice: off the model, and off fine-tuning as you use it today.

Find every model string you depend on

The model name is rarely in one place. It hides in code, environment variables, config files, prompt templates, database rows, and third-party tools that call OpenAI on your behalf.

bash.bash
# Every hard-coded OpenAI model reference in the repo
$ grep -rnoE --exclude-dir={node_modules,.git,dist} \
    "(gpt-4o(-mini)?|gpt-4\.1(-mini|-nano)?|o1(-pro)?|o3-mini|o4-mini|gpt-3\.5-turbo|gpt-4-turbo|gpt-image-1|whisper-1|tts-1(-hd)?)" . \
  | sort | uniq -c | sort -rn

# Environment and deployment config
$ grep -rnE "MODEL|OPENAI" .env* deploy/ k8s/ 2>/dev/null

# Running containers in Kubernetes that set a model via env
$ kubectl get deploy -A -o json | jq -r '.items[] | .metadata.name as $n
    | .spec.template.spec.containers[].env[]? | select(.value|tostring|test("gpt-|o[134]-")) | "\($n) \(.name)=\(.value)"'

Don't forget the usage dashboard in your OpenAI account. It shows which models are actually receiving traffic, which catches the cron job nobody remembers and the SaaS integration using your key.

Migrate without a 2 a.m. surprise

A model swap is a behavior change, not a dependency bump. Output length, formatting, tool-calling style, refusals, and latency all shift. Treat it like a release:

  1. Centralize the model name. One config value or alias per use case, such as MODEL_SUMMARIZE, never a string literal scattered across services. This migration is painful mostly for teams that skipped this step.
  2. Build a small eval set from production. Fifty to two hundred real inputs per use case with known-good outputs. Run old and new models side by side and diff the results before you switch anything.
  3. Shadow, then canary. Send a copy of live traffic to the new model and compare, then route 5% for real and watch error rates, latency, and cost.
  4. Re-check prompts that rely on quirks. JSON-only output, strict length limits, and "never say X" instructions are where model changes bite first. Use structured outputs where the API supports them.
  5. Recompute cost. New models price differently per token and may use more reasoning tokens. Check the bill after the canary, not after the cutover.

A gateway in front of providers makes this routine: map summarize-default to a model once, and change the mapping without redeploying every service. We compared the options in AI gateway comparison, and the same layer gives you a fallback provider when one has a bad day, as the Azure OpenAI Sweden Central outage showed.

What to do this week

The deadline is far enough that the right move is small and boring:

  • Run the grep and the usage dashboard check, and write down every use case and owner.
  • Pick target models per use case from the table.
  • Schedule evals and the canary for November, leaving December as buffer.

Teams that start in January end up switching models during a deploy freeze with no eval data. That's how a deprecation becomes an incident.

Questions people ask

When is gpt-4o being shut down?

OpenAI shuts down the gpt-4o snapshots dated 2024-08-06 and 2024-11-20, plus gpt-4o-mini, gpt-4.1, and gpt-4.1-mini, on January 14, 2027. The recommended replacement is gpt-6-luna. The older gpt-4o-2024-05-13 snapshot was already shut down on October 23, 2026.

Why did my o3-mini or gpt-4-turbo calls stop working?

OpenAI shut down o1, o3-mini, o4-mini, gpt-4-turbo, gpt-3.5-turbo (0125), gpt-4.1-nano, and gpt-image-1 on October 23, 2026, after announcing it in April. Requests to those models now fail. Switch to the recommended replacements: gpt-5.6-sol for the reasoning and GPT-4-class models, gpt-5.6-terra for o4-mini and gpt-3.5-turbo.

Do fine-tuned models get shut down too?

Yes. Fine-tuned models follow the shutdown schedule of their base model, so a fine-tuned gpt-4o-mini stops working on January 14, 2027. Separately, existing customers can no longer create new fine-tuning jobs after January 6, 2027, so plan the replacement approach before then.

The decision, concretely

  • Production traffic on gpt-4o-mini or gpt-4.1? Start evals on gpt-6-luna in November; cut over by mid-December.
  • Something broke on October 23? Move to the listed replacement now, then add evals before the next wave.
  • Fine-tuned model in production? Plan the replacement before January 6, when new fine-tuning jobs stop.
  • Model names hard-coded across services? Centralize them first; it's the cheapest insurance you'll buy.

The call we'd make

Treat January 14 as a release date, not a deadline. Inventory your model strings this week, centralize them behind config or a gateway, and run evals in November so December is quiet. The gpt-4o retirement is the one that touches the most production code, and the teams that migrate early get to do it on their own terms.

Sources

Explore topics:DevOpsAI
React
Share this post
KU

Kiril Urbonas

AI Engineer

560 articles
View all articles by Kiril Urbonas

You might have missed

Evergreen posts worth revisiting.