Anthropic not_found_error: meaning, cause, and fix

Since June 15, 2026, this 404 usually comes with a death certificate. Two of the most-deployed Claude model IDs stopped existing that morning.

By the benchr team · · Verified against Anthropic's API error documentation, June 12, 2026

AnthropicHTTP 404severity: highmodel availability

The retirement wave behind the 404s

Anthropic retired claude-sonnet-4-20250514 and claude-opus-4-20250514 on June 15, 2026, and retired means gone: a request that ran fine on June 14 now fails. claude-opus-4-1-20250805 follows on August 5, so an integration that survived this round may have only weeks left. The tracker keeps the full list of dates.

The swaps are painless, and one of them is a raise. Sonnet 4 traffic moves to claude-sonnet-4-6 at the same $3 input / $15 output per million tokens, now with a 1M-token context window. Opus 4 and 4.1 traffic moves to claude-opus-4-8, which drops the bill from $15/$75 to $5/$25. The Sonnet 4 guide and the Opus 4 and 4.1 guide cover both migrations step by step. Note that these dates govern the Claude API, AWS, and Microsoft Foundry; Bedrock and Vertex AI run separate schedules.

What the API says

{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  },
  "request_id": "req_..."
}

That sentence is all you get; the body never names the missing resource, which is why the model-ID check comes first. The SDKs raise typed exceptions (anthropic.NotFoundError in Python), and every response carries a request-id header starting with req_. Quote it when you contact support — it's the fastest path to someone seeing your exact request.

Rule out the boring causes

Before blaming a retirement, spend sixty seconds on the mundane: a typo in the model string, an endpoint path that's slightly off (/v1/message instead of /v1/messages), or a file or batch ID that was deleted or belongs to a different workspace. The API answers all of them with the same sentence, so the error text won't tell you which one you've got. Your config will.

Audit before October

One swap fixes today's failure; an hour of cleanup prevents August's. The Console's usage export breaks traffic down by API key and model, which turns straggler-hunting into a filter: anything still calling claude-opus-4-1-20250805 is your migration list. Pin model IDs in config with an owner instead of scattering them across call sites, and subscribe to the deprecations feed so the next retirement lands in your reader, not your error logs.

# config.yaml
-  model: claude-sonnet-4-20250514    # retired June 15, 2026
+  model: claude-sonnet-4-6           # same $3/$15, 1M context

# Confirm an ID exists before you ship it
curl https://api.anthropic.com/v1/models \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01"

If the ID you're about to deploy isn't in that list, you've found your 404 before production did.

Frequently asked

My code worked Friday and started 404ing Monday. What changed?

If the model was claude-sonnet-4-20250514 or claude-opus-4-20250514, the answer is June 15, 2026. Both retired that day, and retired IDs fail outright rather than redirecting. Swap to claude-sonnet-4-6 or claude-opus-4-8 and the calls come back.

Is the replacement more expensive?

No. claude-sonnet-4-6 keeps Sonnet 4's $3/$15 pricing and adds a 1M-token context window. claude-opus-4-8 bills $5/$25 against the $15/$75 that Opus 4 and 4.1 charged, roughly two-thirds cheaper.

Do Bedrock and Vertex dates match these?

No. June 15 and August 5 apply to the Claude API, AWS, and Microsoft Foundry. Amazon Bedrock and Google Vertex AI keep their own retirement schedules, so check those consoles separately.

Changelog

  • — Published. Error body, retirement dates, and replacement pricing verified against Anthropic's API error and model-deprecation documentation.

Sources

  • Anthropic API errors · platform.claude.com/docs/en/api/errors (verified June 12, 2026)
  • Anthropic model deprecations · platform.claude.com/docs/en/about-claude/model-deprecations (verified June 12, 2026)
  • benchr api-errors.json · structured entry for this error