Tài liệu API · Độ tin cậy
Mã lỗi
Cấu trúc lỗi thống nhất và toàn bộ mã lỗi.
Mọi lỗi đều dùng chung một cấu trúc (xem ví dụ bên cạnh). Bảng dưới đây liệt kê các error.code mà API có thể trả về cùng mã trạng thái HTTP tương ứng; một mã trạng thái có thể ứng với nhiều mã lỗi:
| HTTP | code | Tình huống | Thử lại | Khuyến nghị |
|---|---|---|---|---|
| 400 | invalid_request | JSON sai định dạng, Content-Type không phải application/json, hoặc Idempotency-Key bị thiếu / quá dài; nội dung yêu cầu vượt quá 1 MB sẽ nhận 413 | Không | Sửa yêu cầu rồi gửi lại |
| 401 | invalid_api_key | Key không tồn tại, đã bị thu hồi, hết hạn hoặc bị tắt | Không | Kiểm tra trạng thái Key trong bảng điều khiển |
| 401 | unauthenticated | Phiên bảng điều khiển chưa đăng nhập hoặc đã hết hạn | Không | Đăng nhập lại |
| 402 | quota_exceeded | Hạn mức khả dụng của tài khoản không đủ; mức tạm giữ tối đa vượt quá max_budget (param là max_budget); dung lượng lưu trữ tài nguyên đã đầy | Không | Bổ sung hạn mức, điều chỉnh max_budget hoặc dọn bớt tài nguyên rồi thử lại |
| 402 | key_limit_exceeded | Hạn mức tổng hoặc theo ngày của Key không đủ | Không | Điều chỉnh hạn mức Key rồi thử lại |
| 403 | permission_denied | Key thiếu scope, mô hình không nằm trong danh sách được phép của Key, hoặc tài khoản chưa được cấp quyền dùng mô hình đó | Không | Cấp thêm quyền cho Key trong bảng điều khiển, hoặc liên hệ đội ngũ vận hành để mở mô hình |
| 403 | csrf_failed | Yêu cầu từ bảng điều khiển thiếu CSRF token hoặc token đã hết hiệu lực | Không | Tải lại trang rồi thử lại |
| 403 | account_suspended | Tài khoản đã bị tạm ngưng | Không | Liên hệ đội ngũ vận hành |
| 404 | not_found | Tài nguyên không tồn tại hoặc không thuộc về bạn | Không | Kiểm tra lại ID |
| 404 | not_available | Tính năng chỉ có trên trạm quốc tế, không khả dụng trên trạm này | Không | Dùng trạm tương ứng |
| 403 | terms_required | Chưa đồng ý điều khoản nạp tiền mới nhất | Không | Đọc và đồng ý điều khoản nạp tiền rồi thử lại |
| 409 | idempotency_conflict | Cùng khóa lũy đẳng nhưng nội dung yêu cầu khác | Không | Dùng khóa lũy đẳng mới cho yêu cầu mới |
| 409 | conflict | Xung đột trạng thái tài nguyên | Không | Truy vấn trạng thái mới nhất rồi thao tác lại |
| 409 | group_not_empty | Nhóm vẫn còn tài nguyên | Không | Chuyển hoặc xóa tài nguyên trong nhóm trước |
| 422 | invalid_parameter | Tham số không hợp lệ hoặc tổ hợp không được hỗ trợ (không bị âm thầm bỏ qua) | Không | Sửa tham số theo bảng năng lực |
| 422 | asset_not_ready | Tài nguyên vẫn đang được xử lý | Có | Chờ trạng thái chuyển sang available rồi thử lại |
| 422 | authorization_required | Tài nguyên người thật chưa có ủy quyền hợp lệ | Không | Hoàn tất ủy quyền người thật rồi thử lại |
| 429 | rate_limited | Vượt giới hạn RPM của Key, hoặc giới hạn số tác vụ đồng thời của tài khoản / Key | Có | Backoff theo Retry-After rồi thử lại |
| 500 | internal_error | Lỗi nội bộ của nền tảng | Có | Thử lại với cùng khóa lũy đẳng |
Khi retryable là true, có thể thử lại sau khi backoff; khi thử lại yêu cầu tạo tác vụ, bắt buộc dùng cùng một Idempotency-Key.
Lỗi chỉ phát sinh sau khi tiếp nhận (ví dụ tạm thời không có tuyến xử lý khả dụng) sẽ không được trả về dưới dạng lỗi API, mà thể hiện ở error.code của tác vụ, xem Mã lỗi tác vụ.
Phản hồi lỗi
HTTP/1.1 422 Unprocessable Entity
X-Request-Id: req_xxx
{
"error": {
"code": "asset_not_ready",
"message": "Tài nguyên asset_xxx vẫn đang được xử lý, hãy thử lại khi trạng thái chuyển sang available",
"param": "inputs[0].asset_id",
"retryable": true,
"request_id": "req_xxx"
}
}