YoukaRequestError для HTTP-ошибок и ошибок валидации, и YoukaTaskError для асинхронных задач, завершившихся в состоянии, отличном от успешного. Оба расширяют Error и содержат структурированные поля, чтобы вы могли ветвить логику по коду, статусу и возможности повтора.
YoukaRequestError
Выбрасывается при HTTP-ошибках, ошибках валидации запроса и некорректных ответах.
Поля
string
Машиночитаемый код ошибки, например
INVALID_REQUEST, UNAUTHORIZED,
UPLOAD_FAILED.string
Человекочитаемое описание.
number
HTTP-код статуса, если доступен.
boolean
true, если SDK считает, что ошибку имеет смысл повторить (лимиты запросов,
временные ошибки сервера, идемпотентное повторение в процессе).unknown
Детали от сервера; обычно список проблем Zod для ошибок валидации.
Частые коды
YoukaTaskError
Выбрасывается из client.tasks.wait(...), client.projects.wait(...) и client.exports.wait(...), когда базовая задача или экспорт завершается в failed, cancelled или timed-out.
Поля
'TASK_FAILED' | 'TASK_CANCELLED' | 'TASK_TIMED_OUT'
Напрямую соответствует конечному статусу задачи.
string
Либо сообщение об ошибке задачи, предоставленное сервером, либо сгенерированное резервное.
TaskStatus
Конечный статус задачи.
RestTask
Полная полезная нагрузка задачи на момент сбоя. Полезно для логирования и
пользовательских сообщений об ошибках.
Шаблон повторов
Комбинируйтеretryable с ключом идемпотентности, чтобы построить безопасный цикл повторов:
Прерывание и отмена
Прерывание запроса выбрасывает стандартныйAbortError, а не YoukaRequestError. Проверяйте его явно:
Что дальше
- Tasks — хелперы ожидания и продвинутое опрашивание задач
- Authentication — параметры конструктора и сигналы
- API errors — те же коды в «сыром» HTTP
