跳至主要內容
LocoPal AiLocoPal Ai
API 接入

使用指南

錯誤碼與排查

HTTP 狀態、錯誤碼含義、模型與素材常見錯誤、限流與排查步驟

檢視 Markdown

錯誤碼與排查

排查時請先記錄:HTTP 狀態碼、平台傳回的請求識別碼、模型 ID、任務 ID、素材 ID 與原始錯誤碼。

不要記錄 API Key、真人工作階段 Token 或完整的素材下載位址;提交給平台支援前請先去識別化。

HTTP 狀態含義

狀態含義處理
200請求成功(非同步任務的中間狀態也是 200)讀取回應內容中的狀態欄位
400參數錯誤、請求內容格式錯誤、缺少 model依 error.message 或 msg 修正請求
401API keys 缺少、錯誤或已失效檢查 Authorization 與 Key 狀態
403沒有權限(例如存取其他帳號的素材)確認資源隸屬於目前帳號
404資源不存在、不屬於目前帳號,或方法不相符核對 ID;若路徑正確,再確認 HTTP 方法
429請求過於頻繁退避後重試,不要並行重試
500平台內部錯誤記錄請求識別碼後重試;持續失敗請聯絡支援
502素材處理失敗或相依服務異常稍後重試;持續失敗請聯絡支援

404 有三種成因,不要一律當成「ID 寫錯了」

這是排查時最容易誤判的一點:

情況實測表現
資源不存在 / 不屬於目前帳號GET /api/v1/materials/assets/<不存在> → 404
對僅支援 POST 的路徑送出 GETGET /v1/chat/completions → 404;GET /v1/images/generations → 404
路徑拼寫錯誤404

收到 404 時,請先確認路徑與方法是否相符,再懷疑 ID。

查不到影片任務時傳回 400,不是 404

這一點與其他介面不一致,需要特別注意:

請求實測狀態回應內容
GET /v1/video/generations/<不存在>400{"code":"task_not_exist","message":"task_not_exist","data":null}
GET /v1/videos/<不存在>400同上
GET /api/v1/materials/assets/<不存在>404{"code":404,"data":null,"msg":"素材不存在或无权访问"}

影片任務查詢會以 400 + 頂層 {code, message, data} 結構傳回, 既不是 404,也不是下文所述的 error 物件結構。

錯誤回應有三種結構

1. 模型 / 圖片 / 影片生成介面 —— error 物件

失敗時傳回 HTTP 非 2xx,並附帶一個 error 物件:

{
  "error": {
    "code": "invalid_parameter",
    "message": "请求参数不符合所选模型要求",
    "type": "invalid_request_error",
    "param": "size"
  }
}
欄位說明
code錯誤碼,可能為空字串(見下文)
message可讀的原因,通常包含 request id
type錯誤類型識別。驗證失敗、模型不存在、請求內容不合法,實測皆為 new_api_error
param僅在參數類錯誤時出現,指出是哪個欄位

code 可能是空字串。 實測:驗證失敗與請求內容 JSON 無法解析時,code 都是 ""。 不要用 code 是否為空來判斷「是不是錯誤」,應以 HTTP 狀態碼為準,並優先讀取 message。

type 不是穩定的分類欄位。 需要分類時請讀取 code,不要依賴 type 的取值。

2. 素材庫介面 —— 頂層 code

傳回 HTTP 非 2xx,code 與 HTTP 狀態一致:

{ "code": 404, "data": null, "msg": "素材不存在或无权访问" }

3. 影片任務查詢 —— 頂層 code 字串

{ "code": "task_not_exist", "message": "task_not_exist", "data": null }

請注意這裡的 code 是字串 task_not_exist,不是數字。

request id:排查問題的關鍵識別碼

平台會把 request id 直接寫在 error.message 裡,不需要到 header 裡尋找:

"message": "Invalid token (request id: 202609221135501066578648268d9d6uXuM5QgH)"

一行指令即可取出:

curl -s "$LOCOPAL_BASE_URL/v1/models" \
  -H "Authorization: Bearer sk-invalid" \
  | grep -oE 'request id: [A-Za-z0-9]+'

提交工單時附上這個 request id,可以大幅縮短定位時間。

驗證失敗

API keys 缺少、錯誤或已失效時,所有介面都會傳回 HTTP 401 與:

{
  "error": {
    "code": "",
    "message": "Invalid token (request id: ...)",
    "type": "new_api_error"
  }
}

請注意 code 是空字串——這正是上文提醒「不要依賴 code」的原因。

模型與生成錯誤

錯誤碼 / 提示原因處理
Model name not specified請求內容缺少 model 欄位補上來自 /v1/models 的模型 ID
model_not_found模型 ID 不存在,或目前的 Key / 分組沒有該模型重新查詢 /v1/models 並使用傳回的 id
No available channel目前分組沒有可用的通道改用同類模型或聯絡平台支援
invalid_parameter參數組合不受目前模型支援依 param 欄位調整尺寸、比例、時長等
unknown_parameter目前模型 / 通道不認識請求欄位(例如圖片介面的 response_format)依 param 刪除不受支援的欄位,使用模型的預設行為
InvalidParameter / upstream_error上游模型拒絕參數(例如圖片最小像素數不符)讀取 message 調整尺寸或參數
credit_balance_exhausted / insufficient_quota目前上游通道沒有可用餘額改用同類模型 / 通道,或聯絡平台支援補充通道餘額
ResourceDownloadFailed參考圖片 / 影片位址無法直接下載使用可公開存取的 HTTPS 位址,或改用素材庫 asset://
task_not_exist查詢的任務 ID 不存在或不屬於目前帳號核對任務 ID 與建立任務時的帳號
video_generation_failed影片任務已受理,但提交上游、素材處理、審核或生成階段最終失敗讀取同一回應中的 error.message;保留任務 ID,修正素材或參數後由使用者主動重新提交
目前模型不支援真人素材庫真人素材被提交到沒有該能力的模型改用支援真人素材庫的模型,不要改用一般圖片 URL 繞過
insufficient_user_quota帳戶餘額或目前 API Key 額度不足以涵蓋本次預估消耗依錯誤中的「本次預計需要 / 目前可用」儲值或調整參數後重試;此時不會建立任務
缺少提示词:请在 prompt 或 content 的 text 元素中提供文本描述影片任務沒有文字描述補上 prompt 或 content 中的 text 元素
content[0].role 不支持 ...參考素材角色不在允許清單中改用 reference_image、first_frame、last_frame、reference_video、reference_audio
素材库中找不到素材 ...asset:// 素材不存在或不屬於目前帳號先提交素材並等待狀態變為可用,或核對帳號
task_concurrency_exceeded目前帳號或平台同時在處理的生成任務已達並行上限(HTTP 429)依提示中的「目前 N 個 / 上限 M」等待既有任務完成後再提交;不要連續重試

素材庫錯誤

HTTP提示原因處理
400请求体必须是 JSON 对象請求內容不是合法的 JSON修正請求內容
400type 只能是 virtual 或 realtype 取值錯誤修正 type
400素材分组名称不能为空 / 不能超过 64 个字符名稱缺少或過長修正名稱
400素材分组说明不能超过 300 个字符說明過長縮短說明
400缺少 group_id提交素材時未提供分組補上 group_id
400image_url 必须是可公开下载的 http(s) 地址…位址不是 http(s) 或不完整改用公開網路的 http(s) 位址,或改用 data_url
400image_url 与 data_url 只能提交一个同時提交或兩者皆未提交只保留一個欄位
400data_url 必须是 data:image/...;base64,... 格式 / 图片数据无效或超过 20MB上傳資料格式錯誤或過大修正資料或改用 image_url
404素材不存在或无权访问素材 ID 錯誤、已刪除或不屬於目前帳號使用提交素材時傳回的 asset_id
404素材分组不存在或无权访问 / 素材分组不存在或不属于当前账号分組 ID 錯誤或不屬於目前帳號使用本人帳號下的分組 ID
404素材分组不存在或不是虚拟素材分组向 real 分組提交圖片圖片只能提交到 virtual 分組
429請求過於頻繁輪詢過快或並行過高依提示退避重試
500 / 502 / 503素材服务暂不可用素材服務異常或能力未開通保留請求資訊後重試;持續失敗請聯絡支援

素材審核未完成不是錯誤:查詢會傳回 200,status 為 Processing,繼續輪詢同一個素材 ID 即可。

推理模型輸出為空也不是 HTTP 錯誤:如果傳回 200、finish_reason 為 length,且 usage.completion_tokens_details.reasoning_tokens 已佔滿輸出上限,應提高輸出額度或改用非推理模型。

真人授權錯誤

提示原因處理
授權工作階段不存在或無權存取工作階段過期、已使用或屬於其他使用者由目前使用者重新建立 QR Code
授權尚未完成使用者尚未完成手機端採集保留 QR Code,完成後再解析
該真人素材已綁定其他使用者同一真人分組不能跨帳號重複使用使用原本綁定的帳號,或由本人重新授權
素材服務暫時無法使用授權通道目前無法使用記錄請求時間後聯絡平台支援;不要用一般圖片上傳取代真人採集

限流與重試

  • 429 表示請求過於頻繁,請依提示退避重試,不要並行重試;
  • 素材狀態建議每 5~10 秒查詢一次,影片任務建議每 5~15 秒一次;
  • 僅對 429 與短暫的 5xx 重試;400 / 401 / 403 / 404 請直接修正請求;
  • 重試前先依任務 ID / 素材 ID 查詢,避免重複建立與重複計費。

快速自我檢查

  1. Authorization 是否為 Bearer <API Key>,Key 是否仍在啟用狀態;
  2. 請求網域是否為目前主控台指定的位址(預設 https://locopalai.com,海外模型可能為 https://us-api.locopalai.com);
  3. model 是否來自 /v1/models 的 data[].id;
  4. 素材 status 是否已經是 Active;
  5. 參考圖片 / 影片位址是否為公開網路可直接存取的 http(s) 位址,且不依賴 Cookie 或 Referer;
  6. 同一個任務 / 素材是否重複提交過。

提交支援時請附上

  • 請求時間與介面路徑;
  • HTTP 狀態碼與完整回應內容(API Key 請打馬賽克);
  • 平台傳回的請求識別碼、任務 ID 或素材 ID;
  • 涉及的模型 ID 與參數;
  • 可重現的最小請求範例。
這一頁有幫助嗎?

本頁目錄