YoukaRequestError for HTTP and validation failures, and YoukaTaskError for async tasks that ended in a non-successful state. Both extend Error and carry structured fields so you can branch on code, status, and retryability.
YoukaRequestError
Thrown for HTTP errors, request validation failures, and malformed responses.
Fields
Machine-readable error code, for example
INVALID_REQUEST, UNAUTHORIZED,
UPLOAD_FAILED.Human-readable description.
HTTP status code, if available.
true if the SDK considers the error worth retrying (rate limits, transient
server errors, idempotent replay in progress).Server-provided details, typically a Zod issue list for validation errors.
Common codes
| Code | Cause | Retryable? |
|---|---|---|
INVALID_REQUEST | Request body failed schema validation before being sent. | No |
UNAUTHORIZED | Missing or invalid API key. | No |
NOT_FOUND | Resource doesn’t exist or you lack access. | No |
CONFLICT | Version conflict (HTTP 409). | Yes |
TOO_MANY_REQUESTS | Rate limit hit (HTTP 429). | Yes |
INTERNAL_SERVER_ERROR | Transient server failure (HTTP 500). | Yes |
IDEMPOTENT_REPLAY_IN_PROGRESS | The original request is still running under the same idempotency key (HTTP 202). | Yes |
INVALID_RESPONSE | Server returned a body that didn’t match the expected schema. | No |
UPLOAD_FAILED | Signed URL upload returned non-2xx. | Depends on status |
YoukaTaskError
Thrown from client.tasks.wait(...), client.projects.wait(...), and client.exports.wait(...) when the underlying task or export ends in failed, cancelled, or timed-out.
Fields
Maps directly to the task’s terminal status.
Either the server-provided task error message or a generated fallback.
The terminal task status.
The full task payload at the moment of failure. Useful for logging and
user-facing error messages.
Retry pattern
Combineretryable with an idempotency key to build a safe retry loop:
Abort and cancellation
Aborting a request throws a standardAbortError — not a YoukaRequestError. Check for it explicitly:
What’s next
- Tasks — wait helpers and advanced task polling
- Authentication — constructor options and signals
- API errors — the same codes in raw HTTP
