OpenAI model_not_found: meaning, cause, and fix

A wrong identifier is only one possible cause. The model may also be unavailable on the endpoint, inaccessible to the project, or retired.

By benchr Editorial Team · · · Verified against OpenAI's error documentation, June 12, 2026

OpenAIHTTP 404severity: highmodel availability

Four checks for the same 404 response

A model 404 has four parents. The ID was retired. The ID carries a typo or the wrong snapshot suffix. The model lives on a different endpoint, since some 2026 models are served only through the Responses API and 404 on /v1/chat/completions. Or your account or region was never granted access. The response looks identical in all four cases.

What's shifted is the odds. Typos haven't gotten more common; retirements have. With nine IDs leaving in one October wave and the Assistants API sunsetting on August 26, 2026, a model that vanished on purpose is the explanation that fits most of these failures this year.

What it returns

HTTP/1.1 404 Not Found

{
  "error": {
    "message": "The model `gpt-4o-2024-05-13` does not exist or you do not have access to it.",
    "type": "invalid_request_error",
    "code": "model_not_found"
  }
}

The wording does two jobs at once: does not exist or you do not have access covers every cause without revealing which one applies to you. The backticked ID echoes whatever your request carried, so a stale snapshot suffix or a transposed character shows up right in the error text.

Check the model lifecycle record

October 23, 2026 is the date that matters. benchr's deprecations record lists nine OpenAI IDs going dark that day: gpt-4o-2024-05-13, gpt-4-0613, gpt-4-turbo, gpt-4-1106-preview, gpt-3.5-turbo-0125, o1, o1-pro, o3-mini, and o4-mini. The official replacements are GPT-5.5 and GPT-5.4 mini.

If your ID sits on that list, you're done diagnosing. The retirement-wave record maps every ID to its successor, the gpt-4o page covers the heaviest-traffic migration, and the tracker shows which shutdowns come next so the following 404 doesn't surprise you either.

The config fix

The durable version of this fix is a startup check: ask the API what your key can see, and refuse to boot on an ID that isn't there.

// Node: verify the configured model at startup
const MODEL = process.env.OPENAI_MODEL ?? "gpt-5";

const res = await fetch("https://api.openai.com/v1/models", {
  headers: { Authorization: `Bearer ${process.env.OPENAI_API_KEY}` },
});
const { data } = await res.json();

if (!data.some((m) => m.id === MODEL)) {
  console.error(`Model "${MODEL}" is not available to this key.`);
  console.error("Retired? Official replacements: GPT-5.5 or GPT-5.4 mini.");
  process.exit(1);
}

Keep the model ID in config or an environment variable rather than scattered through call sites. Retirements arrive on a published calendar, and a swap should be a one-line change with a deploy, not an afternoon of grep.

Frequently asked

Why did code that worked yesterday 404 today?

Models retire on fixed dates, not gradually. The day a shutdown lands, every call to that ID fails at once; October 23, 2026 removes nine OpenAI IDs in a single pass, so whole fleets break the same morning without anyone deploying a thing.

Does this 404 mean my API key is bad?

No. A bad key fails as a 401 before any model lookup happens. Getting a 404 means authentication succeeded and the model is what's missing, retired, or gated for your account.

What should gpt-4o traffic move to?

OpenAI's official replacement is GPT-5.5. benchr's cost-matched pick is still GPT-5 at $1.25 in and $10 out per million tokens, which lands far closer to gpt-4o-era bills. Call the floating gpt-5 alias: the dated gpt-5-2025-08-07 snapshot shuts down December 11, 2026. For new work, benchr's editorial pick is GPT-5.6 Terra at $2 input / $12 output per 1M tokens as the general tier. For high-volume traffic, GPT-5.6 Luna costs $0.20 input / $1.20 output per 1M tokens. Both have a 1.05M-token window. The gpt-4o record walks every path.

Changelog

  • — Added benchr's current OpenAI picks (GPT-5.6 Terra for general work, GPT-5.6 Luna for volume) to the gpt-4o answer, and noted the December 11, 2026 shutdown of the dated gpt-5-2025-08-07 snapshot. OpenAI's official replacements are unchanged.
  • — Published. Message pattern, status code, and the October 23 retirement list checked against OpenAI's error documentation and benchr's deprecations record.

Sources