SunsetDiff

Silent failures after a model shutdown

A retired model often fails with model_not_found, HTTP 404, or HTTP 410. If the caller catches that error and continues, the job can exit successfully while the model did no work. Fail the run on those signals, alert when a finished run has no output, and read the shutdown date from the SunsetDiff API before the job starts.

Last reviewed . Publisher: SunsetDiff.

Steps

  1. Fail on model_not_found, 404, and 410. Treat those as a failed run. A later step that expected model text should not run.
  2. Alert when a finished run has no output. If the handler swallows the error, the process can still exit successfully. Alert when the model text is empty.
  3. Read the date before the job. Fetch the model row from the SunsetDiff API. shutdown_date is the published date. Open sources[0].url before you migrate.

A caught error looks like success

GitHub issue maxswaine/game-repository#110 says gpt-4.1-nano shut down on 2026-10-23 and that calls return 404 model_not_found. It says the duplicate judge raises on every call, and the caller catches that error and continues, so every borderline duplicate is accepted without a judgment.

That is the swallow. The exception is handled, and the work that needed the model is skipped. A scheduled job with the same shape can finish with an empty result and a successful exit. Alert on that empty result. The issue itself describes the continue, not a zero-output log line.

A different failure is a live model rejecting an old field. GitHub issue neondatabase/neon-pkgs#937 records this sentence for gpt-6-astra, gpt-6-sol, gpt-6-luna, and gpt-6-1-sol: Unsupported parameter: 'temperature' is not supported with this model. OpenAI's Using GPT-6 guide says to remove temperature when reasoning effort is not none. That is a request error, and it should fail the run too. The page for the sentence is temperature is not supported with this model.

Sources: GitHub issue maxswaine/game-repository#110 , GitHub issue neondatabase/neon-pkgs#937 , Using GPT-6 , checked October 24, 2026.

Status codes that mean the model did no work

Fail the run when the provider returns one of these. The sentence is quoted only when the linked source prints it.

Signals recorded in a public issue or on an official lifecycle page.
SignalWhere it is writtenWhat SunsetDiff links
404 model_not_foundgame-repository#110 for gpt-4.1-nano on 2026-10-23The model has been deprecated
Unsupported parameter: 'temperature' is not supported with this model.neon-pkgs#937 for gpt-6-sol, gpt-6-luna, gpt-6-astra, and gpt-6.1-soltemperature is not supported with this model
HTTP 404, models/gemini-2.5-flash is no longer available to new usersecomAssistant#92. Older keys in that report still work.gemini-2.5-flash is no longer available to new users
model_not_foundgoose#13114 for deepseek-reasoner. DeepSeek's changelog says deepseek-chat and deepseek-reasoner are discontinued on 2026-07-24. The V4 preview note says they are fully retired and inaccessible after Jul 24th, 2026, 15:59 UTC.No DeepSeek API model page. See the next section.
410 GoneAzure's lifecycle page says a Retired model is removed from service and all inference requests return 410 Gone.Azure OpenAI retired models return 410 Gone

Sources: GitHub issue maxswaine/game-repository#110 , GitHub issue neondatabase/neon-pkgs#937 , GitHub issue LebgaaAbderrahmane/ecomAssistant#92 , GitHub issue aaif-goose/goose#13114 , DeepSeek API changelog , DeepSeek-V4 preview , Foundry Models lifecycle , Gemini API deprecations , checked October 24, 2026.

DeepSeek API ids are not in this dataset

DeepSeek's API changelog for 2026-04-24 says the legacy names deepseek-chat and deepseek-reasoner will be discontinued on 2026-07-24. During the period before that date they pointed at deepseek-v4-flash non-thinking and thinking. The V4 preview note says deepseek-chat and deepseek-reasoner will be fully retired and inaccessible after Jul 24th, 2026, 15:59 (UTC Time). The current quick start lists deepseek-flash and deepseek-v4-pro.

GitHub issue aaif-goose/goose#13114 says selecting deepseek-reasoner fails with model_not_found, and that DeepSeek retired it on 2026-07-24 together with deepseek-chat. The issue does not print a longer error sentence. SunsetDiff has no provider row for the DeepSeek API and no model file for deepseek-chat or deepseek-reasoner, so there is no error page for that pair.

The DeepSeek rows SunsetDiff does store are Amazon Bedrock ids. deepseek.r1-v1:0, deepseek.v3-v1:0, and deepseek.v3.1 have shutdown date 2027-03-30. Those are not deepseek-chat or deepseek-reasoner.

Sources: DeepSeek API changelog , DeepSeek-V4 preview , DeepSeek API quick start , GitHub issue aaif-goose/goose#13114 , Bedrock legacy lifecycle , checked October 24, 2026.

Alert when the run has no output

Fail before the rest of the job runs. The status codes in the table are the ones to raise on. An empty model result is the second check: the handler may have caught the error and returned no text.

Gemini is the partial case. ecomAssistant#92 says one key that counts as a new user gets HTTP 404 for gemini-2.5-flash, and older keys still work. A retry on a second key can hide that some calls never ran. Google's deprecations page says 2.5 access is limited to users who have actively used those models, and that the models are not deprecated.

Fail the run

status = response.status_code
body = response.text
if status in (404, 410) or "model_not_found" in body:
    raise RuntimeError(f"model request failed with HTTP {status}")
if not body.strip():
    raise RuntimeError("model request returned no output")

Sources: GitHub issue LebgaaAbderrahmane/ecomAssistant#92 , Gemini API deprecations , Foundry Models lifecycle , checked October 24, 2026.

Check the date before the job

The files are static. Check model shutdown dates programmatically lists the fields. shutdown_date_kind not_before is a floor, not a deadline. Read sources[0].url before you migrate.

curl

curl -fsSL https://sunsetdiff.com/api/v1/upcoming.json
curl -fsSL https://sunsetdiff.com/api/v1/lookup/gpt-4.1-nano.json

Source: SunsetDiff API docs , checked October 24, 2026.

Related SunsetDiff pages

All guides

Questions

Is every shutdown HTTP 404?

game-repository#110 records 404 model_not_found for gpt-4.1-nano. Azure's lifecycle page says a retired model returns 410 Gone. OpenAI's deprecations page does not print an HTTP status for shutdown. The sentences SunsetDiff quotes are on the request error pages.

Why did one Gemini key work and another return 404?

ecomAssistant#92 says a key that counts as a new user gets HTTP 404 for gemini-2.5-flash, and older keys still work. Google's deprecations page says 2.5 access is limited to users who have actively used those models, and that the models are not deprecated.

Where is the DeepSeek API retirement in SunsetDiff?

It is not a model row. The DeepSeek changelog says deepseek-chat and deepseek-reasoner are discontinued on 2026-07-24. The Bedrock DeepSeek ids on this site shut down on 2027-03-30.

More guides

Deprecation alerts

We email you before models shut down. Unsubscribe anytime.

Deprecation alert signup
Providers (optional)