YoukaRequestError cho lỗi HTTP và lỗi xác thực (validation), và YoukaTaskError cho các tác vụ bất đồng bộ kết thúc ở trạng thái không thành công. Cả hai đều kế thừa Error và mang theo các trường có cấu trúc để bạn có thể rẽ nhánh theo code, status và khả năng thử lại (retryability).
YoukaRequestError
Được ném ra khi gặp lỗi HTTP, lỗi xác thực request, và phản hồi bị sai định dạng.
Các trường
Mã lỗi có thể đọc bởi máy, ví dụ
INVALID_REQUEST, UNAUTHORIZED,
UPLOAD_FAILED.Mô tả dành cho con người.
Mã trạng thái HTTP, nếu có.
true nếu SDK coi lỗi này đáng để thử lại (giới hạn tốc độ, lỗi máy chủ tạm thời, đang phát lại theo idempotent).Chi tiết do server cung cấp, thường là danh sách issue của Zod đối với lỗi validation.
Các code thường gặp
| Code | Nguyên nhân | Có thể thử lại? |
|---|---|---|
INVALID_REQUEST | Body của request không vượt qua kiểm tra schema trước khi được gửi đi. | No |
UNAUTHORIZED | Thiếu hoặc API key không hợp lệ. | No |
NOT_FOUND | Tài nguyên không tồn tại hoặc bạn không có quyền truy cập. | No |
CONFLICT | Xung đột phiên bản (HTTP 409). | Yes |
TOO_MANY_REQUESTS | Chạm giới hạn tốc độ (HTTP 429). | Yes |
INTERNAL_SERVER_ERROR | Lỗi máy chủ tạm thời (HTTP 500). | Yes |
IDEMPOTENT_REPLAY_IN_PROGRESS | Request gốc vẫn đang chạy dưới cùng idempotency key (HTTP 202). | Yes |
INVALID_RESPONSE | Server trả về body không khớp với schema mong đợi. | No |
UPLOAD_FAILED | Upload qua signed URL trả về mã khác 2xx. | Phụ thuộc vào status |
YoukaTaskError
Được ném ra từ client.tasks.wait(...), client.projects.wait(...), và client.exports.wait(...) khi tác vụ hoặc export bên dưới kết thúc ở failed, cancelled, hoặc timed-out.
Các trường
Ánh xạ trực tiếp tới trạng thái kết thúc (terminal status) của tác vụ.
Hoặc là thông điệp lỗi của tác vụ do server cung cấp, hoặc là một thông điệp dự phòng được tạo ra.
Trạng thái kết thúc của tác vụ.
Toàn bộ payload của tác vụ tại thời điểm thất bại. Hữu ích cho việc ghi log và
thông báo lỗi hiển thị cho người dùng.
Mẫu retry
Kết hợpretryable với một idempotency key để xây dựng vòng lặp retry an toàn:
Hủy (abort) và huỷ tác vụ
Khi abort một request sẽ ném raAbortError tiêu chuẩn — không phải YoukaRequestError. Hãy kiểm tra riêng trường hợp này:
Tiếp theo
- Tasks — các helper để chờ và polling tác vụ nâng cao
- Authentication — các tuỳ chọn constructor và signal
- API errors — các code tương tự ở dạng HTTP thô
