跳到主要内容
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 已占满输出上限,应提高输出额度或改用非推理模型。

真人授权错误

提示原因处理
授权会话不存在或无权访问会话过期、已使用或属于其他用户由当前用户重新创建二维码
授权尚未完成用户还没完成手机端采集保留二维码,完成后再解析
该真人素材已绑定其他用户同一真人分组不能跨账号复用使用原绑定账号,或由本人重新授权
素材服务暂不可用授权通道当前不可用记录请求时间后联系平台支持;不要用普通图片上传替代真人采集

限流与重试

  • 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 与参数;
  • 可复现的最小请求示例。
这一页有帮助吗?

本页目录