GETAPI
СвязатьсяВойти
GETAPI/Документация/Скилл: ошибки и повторы

Скилл: ошибки и повторы

Диагностика без раскрытия ключей и повторных побочных действий

Разбор ошибки

Проверяй HTTP-статус и тело ответа. Ошибка может быть JSON, текстом или событием уже открытого потока

Поля error.code, error.type и идентификатор запроса могут отсутствовать. Не выводи ключ и полные конфиденциальные входные данные

В Chat Completions проверяй choices[].error и finish_reason: "error", ошибка может сопровождаться HTTP 200 и частью текста в message.content, такой ответ не считается завершённым

Действия

ОшибкаДействие
Неверный ключ или праваИсправить доступ, не повторять тот же запрос
Неверная модель или параметрыИсправить запрос
429Проверить причину ограничения, учесть Retry-After, если есть
Временная 5xxОграниченный повтор с задержкой, если операция безопасна
Таймаут после отправкиСостояние выполнения неизвестно, проверить последствия
Ошибка SSEСчитать ответ частичным, не выдавать за завершённый

Один статус 503 не определяет причину. Если тело указывает на model_not_found, повтор без изменения модели не исправит запрос

Если состояние видео failed не содержит причины, прочитай GET /v1/tasks/{id} тем же ключом. В fail_reason может быть дополнительное описание, данные расчёта могут отсутствовать. Проверяй возврат по связанным проводкам, одного status: "FAILURE" недостаточно

Проверка резерва

Для Batch проверяй billing_status, reserved_quota и charged_quota отдельно от status. При reconciliation_required возврат резерва ещё не подтверждён

Сохраняй ID задания, суммы и время, сверяй связанные проводки. Не создавай новое задание ради освобождения прежнего резерва, передай данные в поддержку, если расчёт остаётся незавершённым

Запрос отмены Batch POST /v1/batches/{id}/cancel может вернуть unsupported_operation. При таком ответе не считай задание отменённым и резерв возвращённым, продолжай проверять исходный ID

Повторы

Установи предел попыток и общий срок. Используй задержку с увеличением и случайным разбросом, если это соответствует приложению

Не дублируй внешние действия агента при повторе генерации. Для платного асинхронного задания сначала проверь уже созданный ID

Сохраняй идентификатор и время запроса для поддержки, но не секреты

Подробности: ошибки API, повторы, таймауты

Для аудиозадания читай GET /v1/tasks/{task_id}, если task_id есть в журнале, ключом того же аккаунта. status: "FAILURE" вместе с reconciliation.billing_state: "manual_reconciliation" не подтверждает возврат, при cost_confirmed: false стоимость не установлена, при next_lookup_at: null следующая проверка не назначена. Сохраняй резерв и проводки для сверки с поддержкой, ID внутреннего задания может отличаться от ID внешнего запроса

Строка «Стоимость» для аудио в кабинете может показывать резерв после возврата остатка, сверяй итоговые проводки по task_id

Назад
← Скилл: эмбеддинги