404 model_not_found: почему модель не находится
Ошибка 404 model_not_found означает, что строка в поле model не совпала ни с одним идентификатором в опубликованном каталоге. go2llm отвечает сообщением model is not in the published catalog, OpenAI API — The model does not exist. Причина почти всегда в написании ID или в датированном суффиксе Anthropic, а не в ключе и не в балансе.
Страница составлена 2026-09-11, обновлена 2026-09-11.
Как выглядит ошибка
go2llm возвращает статус 404 и тело:
{
"error": {
"type": "model_not_found",
"code": "model_not_found",
"message": "model is not in the published catalog",
"request_id": "gw_d31e8074bb6a4c92a7f0e5c81d4b6a39"
}
}
Для endpoint генерации изображений сообщение другое — model is not in the published image catalog, статус тот же 404.
Официальный OpenAI API отвечает так:
{
"error": {
"message": "The model `gpt-5.6-sol-preview` does not exist or you do not have access to it.",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}
Воспроизведение занимает одну строку:
curl -i https://go2llm.tech/v1/chat/completions \
-H "Authorization: Bearer $GO2LLM_API_KEY" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5-20260901","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
go2llm публикует модель как claude-sonnet-5, без датированного суффикса, поэтому такой запрос вернёт 404.
Причины 404 model_not_found
1. Взят датированный ID вместо public ID
Anthropic API использует версии с датой вида claude-sonnet-4-5-20250929. go2llm публикует короткие public ID: claude-opus-5, claude-sonnet-5, claude-haiku-4-5, claude-opus-4-8, claude-fable-5. Датированная форма в каталоге go2llm отсутствует и даёт 404.
2. Опечатка или лишний суффикс
Строки gpt-5.6-sol-preview, gpt5.6-sol, gpt-5-6-sol не равны gpt-5.6-sol. Сравнение идентификатора у go2llm точное, без нормализации точек, дефисов и регистра. То же касается gemini-3.8-flash, deepseek-v4-pro, glm-5.3-flash, qwen3.8-max.
3. Модель ушла из каталога или ещё не опубликована
Каталог go2llm версионируется: актуальная версия на 2026-09-11 — v19, в ней опубликовано 38 моделей. Модель, которой нет в текущей версии каталога, возвращает 404 независимо от того, существует ли она у вендора. Единственный достоверный источник — GET /v1/models, он работает без ключа.
4. Модель есть, но не разрешена конкретному ключу
Это не 404. У ключа go2llm настраивается список разрешённых моделей; запрос к модели вне списка даёт 403 с типом model и сообщением model not allowed for this key. Если статус 403 — смотрите страницу про 403.
5. Модель вызвана не через свой endpoint
Модель для генерации изображений (gpt-image-2, nano-banana-2, nano-banana-pro, gemini-3.1-flash-image, grok-imagine-image) существует в каталоге, но обслуживается только на POST /v1/images/generations. Вызов такой модели через POST /v1/chat/completions даёт 400 с кодом model_protocol_mismatch, а обратная ситуация — 404 model is not in the published image catalog. Правильный endpoint для каждой модели указан в ответе GET /v1/models.
6. Запрос ушёл на endpoint, которого у go2llm нет
go2llm публикует четыре рабочих endpoint: POST /v1/messages, POST /v1/chat/completions, POST /v1/responses (опубликован 2026-09-14) и POST /v1/images/generations. Embeddings, image edits, video и audio не опубликованы, и обращение к ним даёт 404 на уровне маршрута, а не на уровне модели. Как такой промах по маршруту выглядит на практике, разобрано на странице про 404 в Codex CLI.
Как починить по шагам
Шаг 1. Получите актуальный каталог. Endpoint работает без ключа:
curl -s https://go2llm.tech/v1/models | jq -r '.data[].id' | sort
Шаг 2. Скопируйте ID из вывода дословно, не набирая руками. Регистр, точки и дефисы значимы.
Шаг 3. Проверьте, что модель обслуживается нужным endpoint. Ответ GET /v1/models содержит модальности и endpoints для каждой модели:
curl -s https://go2llm.tech/v1/models | jq '.data[] | select(.id=="gpt-image-2")'
Шаг 4. Добавьте в код проверку модели при старте, чтобы 404 всплывал на деплое, а не на первом пользовательском запросе:
import httpx
def assert_model_published(model_id: str) -> None:
"""Падает на старте, если модели нет в каталоге go2llm."""
r = httpx.get("https://go2llm.tech/v1/models", timeout=15.0)
r.raise_for_status()
published = {m["id"] for m in r.json()["data"]}
if model_id not in published:
close = sorted(m for m in published if m.split("-")[0] == model_id.split("-")[0])
raise SystemExit(
f"Модель {model_id!r} не опубликована в каталоге go2llm. "
f"Похожие: {close or 'нет'}"
)
assert_model_published("claude-sonnet-5")
Шаг 5. Убедитесь, что починка сработала, минимальным запросом на 16 токенов — он стоит доли цента даже на claude-opus-5 ($0.50 за 1M входных и $2.51 за 1M выходных токенов).
Как избежать 404 в будущем
Не хардкодьте список моделей в нескольких местах: держите один конфиг и сверяйте его с GET /v1/models при старте сервиса или в CI. Каталог go2llm меняется версиями (текущая — v19 от 2026-09-11), и проверка на деплое стоит одного HTTP-запроса без ключа.
Не переносите датированные идентификаторы Anthropic в конфиг go2llm при миграции: claude-sonnet-4-5-20250929 превращается в claude-sonnet-5, claude-opus-4-1-20250805 — в claude-opus-4-8 или claude-opus-5 в зависимости от того, какая модель вам нужна. Полная таблица соответствий с ценами — на странице тарифов.
Обрабатывайте 404 model_not_found как фатальную ошибку конфигурации: ретрай не помогает, ответ будет тот же. Логируйте error.request_id — по нему поддержка go2llm поднимает маршрут запроса (request logs хранятся до 90 дней).
Держите запасную модель того же протокола, а не того же вендора: если claude-opus-5 вам недоступна по квоте ключа, fallback на claude-sonnet-5 ($0.33 / $1.64 / $0.033 за 1M) работает на том же POST /v1/messages без единой правки кода.
Связанные ошибки
- 400 unsupported_content_type и model_protocol_mismatch — модель есть, но запрос не того формата.
- 403: модель не разрешена ключу — статус 403, а не 404.
- 404 на /v1/responses в Codex CLI — 404 на уровне маршрута.
- Справочник всех кодов и docs/errors.
FAQ
Где взять точный список моделей go2llm? GET https://go2llm.tech/v1/models — без ключа, в ответе приходят public ID, модальности и поддерживаемые endpoints. Цены по тем же ID отдаёт GET https://go2llm.tech/api/pricing вместе с версией каталога.
Сколько моделей опубликовано в go2llm? На 2026-09-11 в каталоге v19 опубликовано 38 моделей, включая claude-opus-5, gpt-6-astra, gemini-3.8-flash, grok-4.6, deepseek-v4-pro, kimi-k3, glm-5.3, qwen3.8-max и модели генерации изображений. Актуальное число всегда возвращает GET /v1/models.
Почему датированный ID Anthropic не работает? go2llm публикует модели под короткими public ID без датированного суффикса. Сравнение точное: claude-sonnet-5-20260901 не совпадёт с claude-sonnet-5 и вернёт 404 model is not in the published catalog.
Чем 404 отличается от 403 при работе с моделями? 404 model_not_found — модели нет в каталоге go2llm вообще. 403 с типом model — модель в каталоге есть, но конкретному ключу она не разрешена в настройках. Первое чинится правкой ID, второе — правкой списка моделей у ключа.
Получить ключ и сделать первый запрос за 3 минуты → go2llm.tech. Подключение SDK и Claude Code — в документации.