YoukaRequestError para falhas de HTTP e validação, e YoukaTaskError para tarefas assíncronas que terminaram em um estado não bem-sucedido. Ambas estendem Error e carregam campos estruturados para que você possa ramificar por código, status e possibilidade de retry.
YoukaRequestError
Lançado para erros HTTP, falhas de validação de requisição e respostas malformadas.
Campos
Código de erro legível por máquina, por exemplo
INVALID_REQUEST, UNAUTHORIZED,
UPLOAD_FAILED.Descrição legível por humanos.
Código de status HTTP, se disponível.
true se o SDK considerar que vale a pena tentar novamente (limites de taxa, erros
transitórios de servidor, repetição idempotente em andamento).Detalhes fornecidos pelo servidor, normalmente uma lista de issues do Zod para erros de validação.
Códigos comuns
| Código | Causa | Retryable? |
|---|---|---|
INVALID_REQUEST | O corpo da requisição falhou na validação do schema antes de ser enviado. | Não |
UNAUTHORIZED | Chave de API ausente ou inválida. | Não |
NOT_FOUND | O recurso não existe ou você não tem acesso. | Não |
CONFLICT | Conflito de versão (HTTP 409). | Sim |
TOO_MANY_REQUESTS | Limite de taxa atingido (HTTP 429). | Sim |
INTERNAL_SERVER_ERROR | Falha transitória do servidor (HTTP 500). | Sim |
IDEMPOTENT_REPLAY_IN_PROGRESS | A requisição original ainda está em execução sob a mesma chave de idempotência (HTTP 202). | Sim |
INVALID_RESPONSE | O servidor retornou um corpo que não correspondeu ao schema esperado. | Não |
UPLOAD_FAILED | O upload via URL assinada retornou um status diferente de 2xx. | Depende do status |
YoukaTaskError
Lançado a partir de client.tasks.wait(...), client.projects.wait(...) e client.exports.wait(...) quando a tarefa subjacente ou a exportação termina em failed, cancelled ou timed-out.
Campos
Mapeia diretamente para o status terminal da tarefa.
Ou a mensagem de erro da tarefa fornecida pelo servidor, ou um fallback gerado.
O status terminal da tarefa.
O payload completo da tarefa no momento da falha. Útil para logs e
mensagens de erro voltadas ao usuário.
Padrão de retry
Combineretryable com uma chave de idempotência para construir um loop de retry seguro:
Abort e cancelamento
Abortar uma requisição lança umAbortError padrão — não um YoukaRequestError. Verifique explicitamente:
Próximos passos
- Tasks — helpers de espera e polling avançado de tasks
- Authentication — opções do construtor e signals
- API errors — os mesmos códigos em HTTP puro
