Fix 404 model_not_found and model_retired

Why BigModel.io returns 404 model_not_found or model_retired, how to get exact model IDs, and how to stop Claude Code from asking for claude-* models.

On this page
  1. What it means
  2. How to fix it
  3. Troubleshooting
  4. Related

The key is fine, but the model ID in the request does not match a model you can call:

json
{ "code": "model_not_found", "message": "The model `glm-5.4` does not exist or is not available.", "error": { "message": "The model `glm-5.4` does not exist or is not available.", "type": "invalid_request_error", "code": "model_not_found" } }

#What it means

  • model_not_found: the ID is mistyped, or the model is not in the catalog. Every pay-as-you-go key can call every catalog model; plan keys cover text models only.
  • model_retired: the model was taken off sale. The message names the replacement: "The model X has been retired. Use Y instead."
  • A claude-* model on /v1/messages: Claude Code asked for one of its default Claude models because a model slot was not set. The message reads: "The model claude-… is not available on BigModel.io. In Claude Code, set ANTHROPIC_MODEL and ANTHROPIC_DEFAULT_HAIKU_MODEL (and the Sonnet/Opus defaults) to a supported model: …"

#How to fix it

  1. Copy the ID from the model catalog, or list what your key can call:
bash
curl https://bigmodel.io/v1/models -H "Authorization: Bearer $BIGMODEL_API_KEY"
  1. Check dots and dashes: glm-5.3, deepseek-v4-pro, kimi-k3. IDs are matched case-insensitively, and vendor-prefixed IDs such as z-ai/glm-5.3 also work.
  2. For model_retired, switch to the model named in the message.
  3. In Claude Code, set ANTHROPIC_MODEL and all three ANTHROPIC_DEFAULT_*_MODEL values to models that support /v1/messages. See Claude Code.

#Troubleshooting

The ID works in curl but not in my tool. The tool may add a prefix or change the case of the name. Check its request log, or type the ID by hand instead of picking it from a preset list.

An image or video model returns 400 model_endpoint_mismatch. The model exists but belongs to another endpoint. Call the endpoint named in the message, for example /v1/videos.

Updated · View as Markdown