Lỗi
Mọi lỗi đều trả về cùng một hình dạng, với mã lỗi ổn định để bạn xử lý bằng code.
Hình dạng lỗi
{
"error": {
"code": "pricing_not_configured",
"message": "Pricing has not been configured for this model."
}
}Hãy dựa vào code, đừng dựa vào message — message có thể được viết lại cho dễ hiểu hơn, code thì ổn định.
Bảng mã lỗi
| HTTP | Mã | Ý nghĩa |
|---|---|---|
| 401 | auth_missing_or_malformed | Thiếu header hoặc sai định dạng Bearer apl_.... |
| 401 | auth_invalid | Key không tồn tại. |
| 401 | auth_revoked | Key đã thu hồi. |
| 401 | auth_expired | Key đã hết hạn. |
| 400 | invalid_request | Body sai kiểu, thiếu field, hoặc giá trị ngoài phạm vi. |
| 400 | unknown_model | Model không tồn tại. |
| 400 | capability_not_supported | Model không dùng được ở endpoint này. |
| 402 | insufficient_balance | Số dư không đủ. |
| 404 | not_found | Không tìm thấy, hoặc tài nguyên không thuộc về bạn. |
| 429 | upstream_rate_limited | Bị giới hạn tốc độ. Thử lại sau. |
| 502 | upstream_error | Nhà cung cấp lỗi. Không bị trừ tiền. |
| 503 | pricing_not_configured | Model đã có route nhưng chưa được cấu hình giá. Lỗi phía chúng tôi. |
| 503 | model_disabled | Model đang tắt. |
| 503 | model_temporarily_unavailable | Nhà cung cấp hiện không phục vụ model này. Tạm thời, có thể tự hết. |
| 504 | upstream_timeout | Nhà cung cấp không kịp phản hồi. Không bị trừ tiền. |
Retry
Chỉ nên retry với 429, 502, 504. Giãn cách 1s, 3s, 8s kèm jitter, tối đa 2–3 lần. Không retry các lỗi 4xx còn lại — chúng sẽ hỏng y như cũ.
Với video: nếu bạn đã nhận được job ID thì đừng retry request tạo job. Hãy poll job ID đó.