Claude not_found_error — 404 Model Not Found
The model, endpoint, or resource you referenced doesn't exist. Usually caused by a typo in the model ID, a deprecated model version, or calling a wrong URL. Fix by updating your model reference.
Verify your model ID exactly matches Anthropic's list. Correct: claude-sonnet-4-5. Wrong: claude-sonnet-4.5 (dots not hyphens), claude-3-sonnet (deprecated), claude-4-sonnet (wrong order).
See the official model list or query client.models.list() for available models.
The Error Message You're Seeing
HTTP/1.1 404 Not Found
{
"type": "error",
"error": {
"type": "not_found_error",
"message": "model: claude-3-opus-20240229 was deprecated on 2026-01-15"
}
}
What Actually Causes This Error
claude-3-opus-20240229 or claude-3-sonnet-20240229 — deprecated in 2026. Migrate to Claude 4.x.claude-sonnet-4-5 not claude-sonnet-4.5./v1/completions (deprecated) instead of /v1/messages.anthropic.claude-sonnet-4-5-v1:0, Vertex uses claude-sonnet-4-5@20260915, not the direct API IDs.Fixes That Work (Tested Nov 2026)
1Use Current Model IDs
Reference this table. Model IDs change; verify against the official docs.
| Provider | Current Model IDs |
|---|---|
| Direct API | claude-opus-4, claude-sonnet-4-5, claude-haiku-4-5 |
| AWS Bedrock | anthropic.claude-opus-4-v1:0, anthropic.claude-sonnet-4-5-v1:0 |
| Google Vertex | claude-opus-4@YYYYMMDD, claude-sonnet-4-5@YYYYMMDD |
2List Available Models Programmatically
3Migrate From Deprecated Models
If you're on Claude 3.x models (opus-20240229, sonnet-20240229, haiku-20240307), plan migration to 4.x now. Deprecation timelines from Anthropic typically give 6 months notice, but returns become worse over time.
| Deprecated | Migrate To | Notes |
|---|---|---|
claude-3-opus-20240229 | claude-opus-4 | Higher quality, similar cost |
claude-3-sonnet-20240229 | claude-sonnet-4-5 | Better for coding, longer context handling |
claude-3-haiku-20240307 | claude-haiku-4-5 | Faster, same price band |
claude-3-5-sonnet-* | claude-sonnet-4-5 | Direct upgrade path |
Preventing This Error Going Forward
- Subscribe to Anthropic's deprecation notices. They email admins 6+ months before deprecations.
- Externalize model IDs into config. Don't hardcode — use env vars or a config file so migrations are one-line changes.
- Test model changes in staging first. New models can have subtly different behavior even at the same "level."
- Log the model ID with every request. Makes migrations traceable.
- Set up alerts on 404 spikes. Sudden 404s often mean a deprecation you missed.
Researcher · AI Error Hub
Frequently Asked Questions
Typically 6-12 months from deprecation announcement to actual removal. During deprecation, the model still works but Anthropic notifies via email and shows warnings in the console. After the sunset date, requests return 404.
No. Model IDs are strict. claude-3-opus-20240229 does NOT automatically route to claude-opus-4. You must explicitly update the model ID in your code.
URL safety and consistency across cloud providers. Bedrock, Vertex, and the direct API all use hyphens. This lets the same ID format work everywhere (with prefixes).
No official alias exists (Anthropic wants explicit version pins for reproducibility). You can implement your own indirection in code — an env var or config that you update centrally when new models release.
Message IDs expire after 30 days for standard retention. Batch IDs are retained longer but eventually expire. If retrieving old IDs, check the retention windows in Anthropic's batch docs.
Related Errors
Never Miss a Claude Model Deprecation
Our Tuesday digest covers every model launch, deprecation, and migration path. 12,000+ developers subscribe.
Subscribe Free →