Коды ошибок
Единый формат ошибок и таблица кодов, которые может вернуть API.
Формат ответа
Тело ошибки всегда содержит объект error с полями message, type и code.
{
"error": {
"message": "The model `cosmos-4` does not exist or is not available.",
"type": "model_not_found",
"code": "model_not_found"
}
}
Список кодов
| HTTP | type | Когда возникает | Что делать |
|---|---|---|---|
| 400 | invalid_request_error |
Пустой или некорректный messages, битый JSON, неверные параметры. | Проверьте тело запроса: messages должен быть непустым массивом role/content. |
| 401 | authentication_error |
Заголовок Authorization отсутствует или ключ недействителен. | Передайте Authorization: Bearer sk-… и проверьте ключ в кабинете. |
| 403 | permission_error |
Ключ отозван или у аккаунта нет доступа к запрошенной модели. | Создайте новый ключ или проверьте тариф в кабинете. |
| 404 | not_found / model_not_found |
Неизвестная модель или неверный путь без суффикса /v1. | Сверьте алиас модели и базовый URL. |
| 429 | rate_limit_exceeded |
Превышен лимит запросов в минуту или суточный лимит токенов. | Повторите запрос после Retry-After, снизьте частоту или повысьте тариф. |
| 501 | not_implemented |
Эндпоинт ещё не реализован, например /v1/embeddings. | Используйте поддерживаемые эндпоинты и следите за обновлениями. |
| 502 | upstream_error |
Модель не смогла обработать запрос. | Повторите запрос с экспоненциальной задержкой; если повторяется — напишите в поддержку. |
Retry-After
При ответе 429 сервер может вернуть заголовок Retry-After с числом секунд до следующей попытки.
- Учитывайте Retry-After и не повторяйте запрос раньше времени.
- Для 502 используйте экспоненциальную задержку с джиттером.
- Не ретрайте 400, 401, 403 и 404 — это ошибки запроса, а не нагрузки.