Hướng dẫn
Mã lỗi và khắc phục
Trạng thái HTTP, ý nghĩa mã lỗi, lỗi thường gặp của mô hình và tư liệu, giới hạn tần suất và các bước khắc phục
Mã lỗi và khắc phục
Khi khắc phục trước tiên ghi lại: mã trạng thái HTTP, định danh yêu cầu do nền tảng trả về, ID mô hình, ID tác vụ, ID tư liệu và mã lỗi gốc.
Đừng ghi lại khóa API, Token phiên người thật hoặc địa chỉ tải tư liệu đầy đủ; trước khi gửi cho hỗ trợ nền tảng hãy che thông tin nhạy cảm trước.
Ý nghĩa trạng thái HTTP
| Trạng thái | Ý nghĩa | Xử lý |
|---|---|---|
200 | Yêu cầu thành công (trạng thái trung gian của tác vụ bất đồng bộ cũng là 200) | Đọc trường trạng thái trong phần thân phản hồi |
400 | Tham số sai, định dạng phần thân yêu cầu sai, thiếu model | Sửa yêu cầu theo error.message hoặc msg |
401 | API keys thiếu, sai hoặc đã hết hiệu lực | Kiểm tra Authorization và trạng thái Key |
403 | Không có quyền (ví dụ truy cập tư liệu của tài khoản khác) | Xác nhận tài nguyên thuộc tài khoản hiện tại |
404 | Tài nguyên không tồn tại, không thuộc tài khoản hiện tại, hoặc phương thức không khớp | Đối chiếu ID; nếu đường dẫn đúng, xác nhận lại phương thức HTTP |
429 | Yêu cầu quá thường xuyên | Lùi lại rồi thử lại, không thử lại đồng thời |
500 | Lỗi nội bộ nền tảng | Ghi lại định danh yêu cầu rồi thử lại; nếu thất bại liên tục hãy liên hệ hỗ trợ |
502 | Xử lý tư liệu thất bại hoặc dịch vụ phụ thuộc bất thường | Thử lại sau; nếu thất bại liên tục hãy liên hệ hỗ trợ |
404 có ba nguyên nhân, đừng mặc định cho rằng "viết sai ID"
Đây là điểm dễ chẩn đoán nhầm nhất khi khắc phục:
| Tình huống | Biểu hiện thực tế |
|---|---|
| Tài nguyên không tồn tại / không thuộc tài khoản hiện tại | GET /api/v1/materials/assets/<不存在> → 404 |
Gửi GET tới đường dẫn chỉ hỗ trợ POST | GET /v1/chat/completions → 404; GET /v1/images/generations → 404 |
| Viết sai đường dẫn | 404 |
Khi nhận 404, trước tiên xác nhận đường dẫn và phương thức có khớp nhau không, rồi mới nghi ngờ ID.
Không tìm thấy tác vụ video trả về 400, không phải 404
Điểm này không nhất quán với các API khác, cần đặc biệt lưu ý:
| Yêu cầu | Trạng thái thực tế | Phần thân phản hồi |
|---|---|---|
GET /v1/video/generations/<不存在> | 400 | {"code":"task_not_exist","message":"task_not_exist","data":null} |
GET /v1/videos/<不存在> | 400 | Như trên |
GET /api/v1/materials/assets/<不存在> | 404 | {"code":404,"data":null,"msg":"素材不存在或无权访问"} |
Truy vấn tác vụ video trả về bằng cấu trúc 400 + cấp cao nhất {code, message, data},
không phải 404, cũng không phải cấu trúc đối tượng error nói dưới đây.
Phản hồi lỗi có ba cấu trúc
1. API tạo sinh mô hình / hình ảnh / video — đối tượng error
Khi thất bại trả về HTTP không phải 2xx, kèm một đối tượng error:
{
"error": {
"code": "invalid_parameter",
"message": "请求参数不符合所选模型要求",
"type": "invalid_request_error",
"param": "size"
}
}| Trường | Mô tả |
|---|---|
code | Mã lỗi, có thể là chuỗi rỗng (xem dưới) |
message | Nguyên nhân dễ đọc, thường chứa request id |
type | Định danh loại lỗi. Thực tế với xác thực thất bại, mô hình không tồn tại, phần thân yêu cầu không hợp lệ đều là new_api_error |
param | Chỉ xuất hiện khi lỗi loại tham số, chỉ ra trường nào |
codecó thể là chuỗi rỗng. Thực tế: khi xác thực thất bại và khi JSON phần thân yêu cầu không phân tích được,codeđều là"". Đừng dùng việccodecó rỗng hay không để phán đoán "có phải lỗi không", hãy lấy mã trạng thái HTTP làm chuẩn, và ưu tiên đọcmessage.
typekhông phải trường phân loại ổn định. Khi cần phân loại hãy đọccode, đừng phụ thuộc vào giá trị củatype.
2. API thư viện tư liệu — code cấp cao nhất
Trả về HTTP không phải 2xx, code trùng với trạng thái HTTP:
{ "code": 404, "data": null, "msg": "素材不存在或无权访问" }3. Truy vấn tác vụ video — chuỗi code cấp cao nhất
{ "code": "task_not_exist", "message": "task_not_exist", "data": null }Lưu ý code ở đây là chuỗi task_not_exist, không phải số.
request id: định danh then chốt để khắc phục vấn đề
Nền tảng ghi thẳng request id vào error.message, không cần tìm trong header:
"message": "Invalid token (request id: 202609221135501066578648268d9d6uXuM5QgH)"Lấy ra bằng một dòng lệnh:
curl -s "$LOCOPAL_BASE_URL/v1/models" \
-H "Authorization: Bearer sk-invalid" \
| grep -oE 'request id: [A-Za-z0-9]+'Khi gửi ticket kèm request id này, có thể rút ngắn đáng kể thời gian định vị.
Xác thực thất bại
Khi API keys thiếu, sai hoặc đã hết hiệu lực, tất cả API đều trả về HTTP 401 và:
{
"error": {
"code": "",
"message": "Invalid token (request id: ...)",
"type": "new_api_error"
}
}Lưu ý code là chuỗi rỗng — đây chính là lý do phần trên nhắc "đừng phụ thuộc code".
Lỗi mô hình và tạo sinh
| Mã lỗi / thông báo | Nguyên nhân | Xử lý |
|---|---|---|
Model name not specified | Phần thân yêu cầu thiếu trường model | Bổ sung ID mô hình từ /v1/models |
model_not_found | ID mô hình không tồn tại, hoặc Key / nhóm hiện tại không có mô hình đó | Truy vấn lại /v1/models và dùng id trả về |
No available channel | Nhóm hiện tại không có kênh khả dụng | Đổi sang mô hình cùng loại hoặc liên hệ hỗ trợ nền tảng |
invalid_parameter | Tổ hợp tham số không được mô hình hiện tại hỗ trợ | Điều chỉnh kích thước, tỷ lệ, thời lượng... theo trường param |
unknown_parameter | Mô hình / kênh hiện tại không nhận diện trường yêu cầu (ví dụ response_format của API hình ảnh) | Xóa trường không được hỗ trợ theo param, dùng hành vi mặc định của mô hình |
InvalidParameter / upstream_error | Mô hình thượng nguồn từ chối tham số (ví dụ không đáp ứng số pixel tối thiểu của hình ảnh) | Đọc message để điều chỉnh kích thước hoặc tham số |
credit_balance_exhausted / insufficient_quota | Kênh thượng nguồn hiện tại không có số dư khả dụng | Đổi sang mô hình / kênh cùng loại, hoặc liên hệ hỗ trợ nền tảng bổ sung số dư kênh |
ResourceDownloadFailed | Địa chỉ ảnh / video tham chiếu không thể tải trực tiếp | Dùng địa chỉ HTTPS truy cập công khai, hoặc chuyển sang asset:// của thư viện tư liệu |
task_not_exist | ID tác vụ truy vấn không tồn tại hoặc không thuộc tài khoản hiện tại | Đối chiếu ID tác vụ với tài khoản lúc tạo tác vụ |
video_generation_failed | Tác vụ video đã được tiếp nhận, nhưng giai đoạn gửi thượng nguồn, xử lý tư liệu, duyệt hoặc tạo sinh cuối cùng thất bại | Đọc error.message trong cùng phản hồi; giữ ID tác vụ, sau khi sửa tư liệu hoặc tham số để người dùng chủ động gửi lại |
| Mô hình hiện tại không hỗ trợ thư viện tư liệu người thật | Tư liệu người thật bị gửi tới mô hình không có năng lực đó | Đổi sang mô hình hỗ trợ thư viện tư liệu người thật, đừng dùng URL ảnh thường để lách qua |
insufficient_user_quota | Số dư tài khoản hoặc hạn mức khóa API hiện tại không đủ để chi trả mức tiêu hao ước tính lần này | Nạp tiền hoặc điều chỉnh tham số theo "mức dự kiến cần lần này / hiện có khả dụng" trong lỗi rồi thử lại; lúc này sẽ không tạo tác vụ |
缺少提示词:请在 prompt 或 content 的 text 元素中提供文本描述 | Tác vụ video không có mô tả văn bản | Bổ sung prompt hoặc phần tử text trong content |
content[0].role 不支持 ... | Vai trò tư liệu tham chiếu không nằm trong danh sách cho phép | Đổi sang reference_image, first_frame, last_frame, reference_video, reference_audio |
素材库中找不到素材 ... | Tư liệu asset:// không tồn tại hoặc không thuộc tài khoản hiện tại | Trước tiên gửi tư liệu và chờ trạng thái khả dụng, hoặc đối chiếu tài khoản |
task_concurrency_exceeded | Tác vụ tạo sinh mà tài khoản hiện tại hoặc nền tảng đang xử lý đồng thời đã đạt giới hạn đồng thời (HTTP 429) | Theo "hiện có N / giới hạn M" trong thông báo, chờ tác vụ hiện có hoàn tất rồi mới gửi; đừng thử lại liên tục |
Lỗi thư viện tư liệu
| HTTP | Thông báo | Nguyên nhân | Xử lý |
|---|---|---|---|
400 | 请求体必须是 JSON 对象 | Phần thân yêu cầu không phải JSON hợp lệ | Sửa phần thân yêu cầu |
400 | type 只能是 virtual 或 real | Giá trị type sai | Sửa type |
400 | 素材分组名称不能为空 / 不能超过 64 个字符 | Thiếu tên hoặc tên quá dài | Sửa tên |
400 | 素材分组说明不能超过 300 个字符 | Mô tả quá dài | Rút ngắn mô tả |
400 | 缺少 group_id | Không cung cấp nhóm khi gửi tư liệu | Bổ sung group_id |
400 | image_url 必须是可公开下载的 http(s) 地址… | Địa chỉ không phải http(s) hoặc không đầy đủ | Đổi sang địa chỉ http(s) công khai, hoặc dùng data_url |
400 | image_url 与 data_url 只能提交一个 | Gửi đồng thời hoặc đều không gửi | Chỉ giữ một trường |
400 | data_url 必须是 data:image/...;base64,... 格式 / 图片数据无效或超过 20MB | Định dạng dữ liệu tải lên sai hoặc quá lớn | Sửa dữ liệu hoặc đổi sang image_url |
404 | 素材不存在或无权访问 | ID tư liệu sai, đã xóa hoặc không thuộc tài khoản hiện tại | Dùng asset_id trả về khi gửi tư liệu |
404 | 素材分组不存在或无权访问 / 素材分组不存在或不属于当前账号 | ID nhóm sai hoặc không thuộc tài khoản hiện tại | Dùng ID nhóm thuộc tài khoản của bạn |
404 | 素材分组不存在或不是虚拟素材分组 | Gửi hình ảnh vào nhóm real | Hình ảnh chỉ có thể gửi vào nhóm virtual |
429 | Yêu cầu quá thường xuyên | Poll quá nhanh hoặc đồng thời quá cao | Lùi lại thử lại theo thông báo |
500 / 502 / 503 | 素材服务暂不可用 | Dịch vụ tư liệu bất thường hoặc năng lực chưa được kích hoạt | Giữ thông tin yêu cầu rồi thử lại; nếu thất bại liên tục hãy liên hệ hỗ trợ |
Tư liệu chưa duyệt xong không phải lỗi: truy vấn trả về 200, status là Processing, chỉ cần tiếp tục poll cùng một ID tư liệu.
Mô hình suy luận xuất ra rỗng cũng không phải lỗi HTTP: nếu trả về 200, finish_reason là length, và usage.completion_tokens_details.reasoning_tokens đã chiếm đầy giới hạn đầu ra, nên tăng hạn mức đầu ra hoặc đổi sang mô hình không suy luận.
Lỗi ủy quyền chân dung
| Thông báo | Nguyên nhân | Xử lý |
|---|---|---|
| Phiên ủy quyền không tồn tại hoặc không có quyền truy cập | Phiên đã hết hạn, đã dùng hoặc thuộc người dùng khác | Người dùng hiện tại tạo lại mã QR |
| Ủy quyền chưa hoàn tất | Người dùng chưa hoàn tất thu thập trên điện thoại | Giữ mã QR, hoàn tất rồi mới phân giải |
| Tư liệu người thật này đã liên kết với người dùng khác | Cùng một nhóm người thật không thể tái sử dụng xuyên tài khoản | Dùng tài khoản đã liên kết ban đầu, hoặc để chính người đó ủy quyền lại |
| Dịch vụ tư liệu tạm thời không khả dụng | Kênh ủy quyền hiện không khả dụng | Ghi lại thời gian yêu cầu rồi liên hệ hỗ trợ nền tảng; đừng dùng tải ảnh thường thay cho thu thập người thật |
Giới hạn tần suất và thử lại
429nghĩa là yêu cầu quá thường xuyên, lùi lại thử lại theo thông báo, không thử lại đồng thời;- Trạng thái tư liệu khuyến nghị truy vấn mỗi 5~10 giây, tác vụ video mỗi 5~15 giây;
- Chỉ thử lại với
429và5xxtạm thời;400/401/403/404sửa trực tiếp yêu cầu; - Trước khi thử lại hãy truy vấn theo ID tác vụ / ID tư liệu, tránh tạo trùng và tính phí trùng.
Tự kiểm tra nhanh
Authorizationcó phảiBearer <API Key>, Key còn ở trạng thái bật hay không;- Tên miền yêu cầu có phải địa chỉ hiện được chỉ định trong bảng điều khiển (mặc định
https://locopalai.com, mô hình hải ngoại có thể làhttps://us-api.locopalai.com); modelcó đến từdata[].idcủa/v1/modelshay không;statuscủa tư liệu đã làActivechưa;- Địa chỉ ảnh / video tham chiếu có phải địa chỉ
http(s)truy cập trực tiếp từ công cộng, và không phụ thuộc Cookie hay Referer; - Cùng một tác vụ / tư liệu đã từng bị gửi trùng chưa.
Khi gửi hỗ trợ vui lòng kèm theo
- Thời gian yêu cầu và đường dẫn API;
- Mã trạng thái HTTP và phần thân phản hồi đầy đủ (che khóa API);
- Định danh yêu cầu, ID tác vụ hoặc ID tư liệu do nền tảng trả về;
- ID mô hình và tham số liên quan;
- Ví dụ yêu cầu tối thiểu có thể tái hiện.
