Skip to content

Ошибки

API errors возвращают JSON с единым объектом error.

json
{
  "error": {
    "message": "Invalid request body",
    "type": "invalid_request_error",
    "code": "Bad Request"
  }
}

Некоторые ошибки также включают error_id для support и log correlation.

Используй Error Resolver, если нужно классифицировать raw status/body. В админке rout.my можно настраивать Error Templates, чтобы повторяющиеся upstream ошибки провайдеров превращались в безопасные user-facing messages.

Status codes

StatusЗначениеЧто проверить
400Неверное тело запроса, отсутствующее поле, неподдерживаемый параметр или policy-blocked prompt.JSON и обязательные поля.
401Нет API key или ключ неверный.Authorization header или compatible auth field.
403Ключ валиден, но модель недоступна аккаунту.Используйте доступный model ID или обновите доступ.
404Неверный path или неизвестная модель.Endpoint URL и точный model ID из /v1/models.
405Method not allowed.Используйте documented HTTP method.
429Rate limit или quota exhausted.Подождите, уменьшите запрос или проверьте quota.
499Клиент закрыл соединение до завершения.Держите connection открытым; для video используйте длиннее timeout.
500Internal server error.Повторите позже или передайте детали в support.
502Upstream provider failed или ни один provider не сработал.Повторите запрос или используйте другой доступный model.
503Временная service или quota backend issue.Повторите с backoff.

Retry behavior

Transient statuses повторяйте с exponential backoff:

Retry?Status
Да429, 500, 502, 503
Нет400, 401, 403, 404, 405

Добавляйте jitter, чтобы много клиентов не повторяли запрос в один момент.

python
import random
import time

def sleep_before_retry(attempt):
    delay = min(30, (2 ** attempt) + random.random())
    time.sleep(delay)

Long-running requests

Video generation может выполняться несколько минут. Настройте clients и reverse proxies с достаточно длинными timeouts. Для curl:

bash
curl --max-time 900 ...

API documentation for rout.my.