К содержимому
Base URLМодель в примерах
APItasks-errors.md

Ошибки задач

Объект ошибки один и у задачи (поле error задачи со status: "failed"), и у HTTP-ошибки запроса (тело { "error": {…} }). Это не формат OpenAI: поля type нет. Код из закрытого списка ниже, решение о повторе в retry. Ошибка задачи приходит в самой задаче: HTTP 200 у POST в пределах wait и всегда у GET.

codestring
Код из списка ниже
retrystring
as_is: повторить так же. change_input: исправить запрос. no: не повторять
messagestring
Текст для разработчика, по-английски
paramstringошибка запроса
JSON Pointer на поле тела: /input/references/1, /wait. Если ошибка в параметре строки запроса (GET списка и моделей), это его имя: limit. Ошибка не в поле, например тело не JSON: param нет
retry_afterinteger429, 503
Секунды; то же в Retry-After
requiredbalanceobject402
Сколько нужно на резерв и сколько есть
1{
2 "error": {
3 "code": "insufficient_balance",
4 "retry": "as_is",
5 "message": "Insufficient balance for this task. Top up in the cabinet.",
6 "required": {
7 "amount": "17.18",
8 "currency": "rub"
9 },
10 "balance": {
11 "amount": "4.00",
12 "currency": "rub"
13 }
14 }
15}

X-Request-Id в ответе шлюза не id задачи. Всё, от чего зависит решение (retry, retry_after, poll_after), есть и в теле.

400invalid_request
Запрос не прошёл проверку. Исправьте поле из param. retry: change_input
400reference_too_large
Присланный data URL больше 10 МиБ. retry: change_input
400reference_unsupported
Тип присланного data URL не png, jpeg или webp. retry: change_input
413payload_too_large
Тело запроса больше 32 МиБ. retry: change_input
401unauthorized
Ключа нет, он неверный или отозван. retry: no
402insufficient_balance
Денег на резерв не хватает, в ответе required и balance. Пополните баланс и повторите. retry: as_is
402key_limit_reached
Ключ достиг своего лимита трат; пополнение его не снимает. Повторите после того, как владелец поднимет лимит ключа. retry: as_is
404not_found
Нет такой задачи у аккаунта или неизвестная модель. retry: no
405method_not_allowed
Метод не поддерживается этим путём; допустимые в заголовке Allow. retry: no
409task_id_conflict
Этот id занят другим запросом, задачей другого аккаунта или удалённой задачей с другим запросом. retry: no
410task_purged
Срок хранения задачи вышел; тот же запрос с её id тоже даёт 410. retry: no
429rate_limited
Лимит запросов ключа в минуту или одновременных задач ключа. Подождите retry_after секунд. retry: as_is
503capacity_exceeded
Модель временно недоступна, повторите через retry_after секунд. retry: as_is
503upstream_unavailable
Нет маршрута для модели с этими параметрами или задачи выключены (retry_after 60); сервис на паузе, процесс перегружен или чтение задач не уложилось во время (retry_after 1). retry: as_is
500internal_error
Наша ошибка. Повторите тот же запрос с тем же id. retry: as_is
в задачеinvalid_request
Провайдер отверг вход. retry: change_input
в задачеcontent_policy_violation
Модерация. Текст провайдера мы не показываем. stage: input, если отклонены промпт или референсы, retry: change_input; output, если отклонено готовое изображение, retry: as_is. Отклонённое готовое изображение мы генерируем ещё раз, один раз, пока у задачи есть время: в events это attempt.failed и следующий attempt.started. category, только если провайдер её назвал: sexual, minors, violence, hate, self_harm, illegal, public_figure, copyright
в задачеupstream_timeout
Попытка не успела. retry: as_is
в задачеupstream_unavailable
Провайдер недоступен. retry: as_is
в задачеupstream_capacity
Провайдер перегружен. retry: as_is
в задачеupstream_error
Ошибка у провайдера. retry: as_is
в задачеcapacity_exceeded
Модель временно недоступна. retry: as_is
в задачеresult_unavailable
Результат не сохранился. retry: as_is
в задачеtask_expired
Задача не успела к deadline_at. retry: as_is

Попытки.

Если попытка не удалась, задача идёт дальше, и в events это видно: attempt.started, attempt.failed и attempt.lost с номером попытки attempt и причиной reason из того же списка кодов; у отказа модерации в attempt.failed ещё stage и category, как в ошибке задачи. Какой провайдер отвечал и сколько он стоит, не показывается.