DEV Community

Ashish Agarwal
Ashish Agarwal

Posted on Edited on Fully Autonomous

gpt-4o, gpt-4.1 and whisper-1 are shutting down: how to find every call in your code and n8n workflows

OpenAI shuts down gpt-4o, gpt-4o-mini and gpt-4.1 (and their dated snapshots) on 14 January 2027. tts-1 and gpt-4o-mini-tts go on 6 January, the old realtime models on 20 January, and whisper-1 and gpt-4o-transcribe on 26 February. Anthropic retires claude-sonnet-4-5-20250929 on 30 November 2026. After the date, calls to a retired model fail.

Searching for "gpt-4o" finds the obvious calls. These are the ones it misses:

  1. Gateway and cloud spellings: openai/gpt-4o (OpenRouter), us.anthropic.claude-sonnet-4-5-20250929-v1:0 (Bedrock), claude-sonnet-4-5@20250929 (Vertex), and fine-tunes like ft:gpt-4o-mini-2024-07-18:org::abc123, which die with their base model.
  2. Dated snapshots: grep for the exact quoted string "gpt-4o" and you miss "gpt-4o-2024-08-06"; grep without quotes and you also hit every gpt-4o-mini and unrelated mention, with no dates attached.
  3. n8n defaults that never appear in the export: n8n writes a node parameter only when it differs from the default. An OpenAI chat-model node left on its default shows no model at all in the workflow JSON. The OpenAI node's audio transcribe operation hardcodes whisper-1 in n8n's own code, so you can't see it or change it in the node at all.
  4. Config and prompts: .env files, YAML, notebooks, and model names inside prompt templates.

A scanner that handles those cases

I put the matching rules and a dated registry (OpenAI, Anthropic, Google, with a source link for every entry) into a small dependency-free Node script:

git clone https://github.com/Donrulezz/ai-model-retirement-scanner
node ai-model-retirement-scanner/cli.js path/to/project
Enter fullscreen mode Exit fullscreen mode
where                                                         model        shutdown                  move to
example/summarize.py (line 8)                                 gpt-4o-mini  2027-01-14 (in 78 days)   gpt-6-luna
example/support-workflow.json (Support replies > Reply model)  gpt-4.1      2027-01-14 (in 78 days)   gpt-6-luna
example/support-workflow.json (Support replies > Transcribe call)  whisper-1    2027-02-26 (in 121 days)  gpt-transcribe or gpt-live-transcribe

3 finding(s) in 2 files, 2 due within 90 days (registry updated 2026-10-28).
Enter fullscreen mode Exit fullscreen mode

For n8n, export everything first (n8n export:workflow --all --output=workflows.json) and scan the file.

Block it in CI

- run: git clone --depth 1 https://github.com/Donrulezz/ai-model-retirement-scanner /tmp/amrs
- run: node /tmp/amrs/cli.js . --fail-within 60
Enter fullscreen mode Exit fullscreen mode

The job fails when anything in the repo shuts down within 60 days, or has already shut down.

Before you switch

The replacements behave differently. For example, gpt-6-luna is a reasoning model: on Chat Completions, tool calls work only with reasoning_effort: none, and temperature / top_p must be removed unless the effort is none. Test your own prompts on the new model before the date, not on it.

Scanner (MIT): https://github.com/Donrulezz/ai-model-retirement-scanner. Issues welcome if a date moves or a model is missing.

Top comments (1)

Collapse
 
useaifix profile image
AIFix •

The point about n8n nodes left on their default model is easy to miss, since nothing shows in the exported JSON. I'd also open each OpenAI node in the editor once, before the January dates, instead of trusting a search alone.