Перейти к содержимому
Основной сайт Новости Консоль

Коды ошибок и повторные попытки

При возникновении ошибки интерфейс возвращает статус-код, отличный от 2xx, а тело ответа — JSON:

{
"error": {
"message": "Описание ошибки",
"type": "invalid_request_error",
"code": "..."
}
}

Распространённые коды ошибок

HTTP статусЧастая причинаРекомендуемое действие
400Ошибка параметров, неверный формат тела запросаПроверьте параметры и формат JSON
401Ключ отсутствует / недействителенПроверьте Authorization: Bearer sk-...
403Токен отключён, нет доступа к группе моделейПроверьте в консоли статус токена и группу
404Имя модели не существует или недоступноСм. Обзор моделей
413Тело запроса слишком большое (превышен контекст)Уменьшите messages или выберите модель с большим контекстом
429Ограничение по частоте или недостаточно лимитаПовторяйте с задержкой, см. Ограничения и 429
500 / 502 / 503Нестабильность upstream-моделиПовторите после короткой паузы, шлюз автоматически переключится на доступный upstream

Рекомендации по повторным попыткам

  • Для 429 / 5xx используйте экспоненциальную задержку + джиттер: например, 1s, 2s, 4s, максимум 3–5 попыток;
  • 400 / 401 / 403 — это детерминированные ошибки, повторные попытки не имеют смысла, сначала исправьте запрос;
  • В сценариях с идемпотентностью (например, генерация изображений) перед повторной отправкой сначала убедитесь в окончательном статусе предыдущего запроса, чтобы избежать двойного списания;
  • В production-среде рекомендуется записывать заголовки ответа и error.message, чтобы было проще определить, на каком этапе возникла ошибка.