Skip to main content
SDK cung cấp hai lớp lỗi: 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

string
Mã lỗi có thể đọc bởi máy, ví dụ INVALID_REQUEST, UNAUTHORIZED, UPLOAD_FAILED.
string
Mô tả dành cho con người.
number
Mã trạng thái HTTP, nếu có.
boolean
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).
unknown
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

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

'TASK_FAILED' | 'TASK_CANCELLED' | 'TASK_TIMED_OUT'
Ánh xạ trực tiếp tới trạng thái kết thúc (terminal status) của tác vụ.
string
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.
TaskStatus
Trạng thái kết thúc của tác vụ.
RestTask
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ợp retryable với một idempotency key để xây dựng vòng lặp retry an toàn:
Luôn dùng lại cùng một idempotency key giữa các lần retry. Nếu không, server sẽ coi lần retry là một request mới và bạn có thể bị tạo trùng.

Hủy (abort) và huỷ tác vụ

Khi abort một request sẽ ném ra AbortError 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ô