YoukaRequestError per errori HTTP e di validazione, e YoukaTaskError per task asincroni terminati in uno stato non riuscito. Entrambe estendono Error e includono campi strutturati così puoi diramare la logica in base a codice, stato e possibilità di retry.
YoukaRequestError
Generato per errori HTTP, errori di validazione della richiesta e risposte malformate.
Campi
Codice di errore leggibile dalla macchina, ad esempio
INVALID_REQUEST, UNAUTHORIZED,
UPLOAD_FAILED.Descrizione leggibile dall’uomo.
Codice di stato HTTP, se disponibile.
true se l’SDK considera l’errore meritevole di un retry (rate limit, errori
transitori del server, rigioco idempotente in corso).Dettagli forniti dal server, tipicamente un elenco di issue Zod per errori di validazione.
Codici comuni
| Codice | Causa | Ritentabile? |
|---|---|---|
INVALID_REQUEST | Il body della richiesta non ha superato la validazione dello schema prima dell’invio. | No |
UNAUTHORIZED | Chiave API mancante o non valida. | No |
NOT_FOUND | La risorsa non esiste o non hai accesso. | No |
CONFLICT | Conflitto di versione (HTTP 409). | Sì |
TOO_MANY_REQUESTS | Raggiunto il limite di richieste (HTTP 429). | Sì |
INTERNAL_SERVER_ERROR | Errore transitorio del server (HTTP 500). | Sì |
IDEMPOTENT_REPLAY_IN_PROGRESS | La richiesta originale è ancora in esecuzione con la stessa chiave di idempotenza (HTTP 202). | Sì |
INVALID_RESPONSE | Il server ha restituito un body che non corrispondeva allo schema atteso. | No |
UPLOAD_FAILED | L’upload su Signed URL ha restituito un non-2xx. | Dipende dallo status |
YoukaTaskError
Generato da client.tasks.wait(...), client.projects.wait(...) e client.exports.wait(...) quando il task o l’export sottostante termina in failed, cancelled o timed-out.
Campi
Corrisponde direttamente allo stato finale del task.
Il messaggio di errore del task fornito dal server oppure un fallback generato.
Lo stato finale del task.
Il payload completo del task al momento del fallimento. Utile per logging e
messaggi di errore rivolti all’utente.
Pattern di retry
Combinaretryable con una chiave di idempotenza per costruire un ciclo di retry sicuro:
Interruzione e cancellazione
L’interruzione di una richiesta genera unAbortError standard — non un YoukaRequestError. Verificalo esplicitamente:
Cosa fare dopo
- Tasks — helper di attesa e polling avanzato dei task
- Authentication — opzioni del costruttore e signal
- API errors — gli stessi codici in HTTP raw
