Seedance · 火山方舟格式
错误码
火山方舟格式的接口出错时,返回 HTTP 4xx 或 5xx 状态码和错误对象。错误码与火山方舟相同,处理火山方舟错误的代码可以直接沿用。
错误格式
返回结果是一个 error 对象,例如 duration 传了 0:
{
"error": {
"code": "InvalidParameter",
"message": "duration 需为正整数秒数,或 -1(由模型决定时长)",
"param": "duration",
"type": "BadRequest",
"request_id": "5oAolP1vT0aPGNVd"
}
}| 字段 | 说明 |
|---|---|
code | 错误码,见下表 |
message | 错误信息,说明具体原因 |
param | 出错的请求参数,和参数无关的错误为空字符串 |
type | 错误类型,和 HTTP 状态码对应 |
request_id | 请求 ID,和响应头 X-Request-ID 相同,反馈问题时请提供 |
错误码列表
| HTTP 状态码 | type | code | 说明 |
|---|---|---|---|
| 400 | BadRequest | MissingParameter | 缺少必填参数,例如 model、content,或者当前生成方式需要的提示词、素材 |
| 400 | BadRequest | InvalidParameter | 参数不合法或模型不支持,例如分辨率、时长、画幅超出模型的范围,素材无法下载或格式不对。param 是出错的参数,message 说明具体原因 |
| 400 | BadRequest | InvalidAction | 任务当前的状态不支持这个操作,例如取消已经开始生成或已经结束的任务 |
| 400 | BadRequest | SensitiveContentDetected 等 | 输入的提示词或素材未通过审核,见审核错误码 |
| 401 | Unauthorized | AuthenticationError | API Key 缺失、无效、已禁用或已过期 |
| 403 | Forbidden | AccessDenied | 没有权限:API Key 不能使用这个模型、请求的 IP 不在 API Key 的白名单里,或者账号已被禁用 |
| 403 | Forbidden | AccountOverdueError | 账户余额不足,充值后重试 |
| 404 | NotFound | InvalidEndpointOrModel.NotFound | 模型不存在、已下线,或者不是 Seedance 系列模型(其他模型请用 OpenAI 格式调用) |
| 404 | NotFound | ResourceNotFound | 任务不存在或不属于当前账号,接口路径写错时也返回这个错误码 |
| 429 | TooManyRequests | SetLimitExceeded | API Key 的额度已用完,可以在控制台 → API Keys调高额度 |
| 429 | TooManyRequests | AccountRateLimitExceeded | 请求过于频繁,按 Retry-After 响应头给出的秒数等待后重试 |
| 429 | TooManyRequests | ServerOverloaded | 当前排队的任务较多,或者模型暂时没有可用资源,稍后重试 |
| 500 | InternalServerError | InternalServiceError | 服务内部错误或模型服务暂时不可用,稍后重试;多次失败时请带上 request_id 联系客服 |
创建接口返回错误时不会创建任务,也不会扣费。429 和 500 可以稍后重试,其他错误需要先按 message 修改请求,原样重试仍会失败。
审核错误码
提示词、素材或生成的视频未通过审核时,会出现下面的错误码:在提交时被拦截的,创建接口直接返回 HTTP 400;在生成过程中被拦截的,任务以 failed 结束,错误码在任务的 error.code 里,见失败原因。
| code | 说明 |
|---|---|
SensitiveContentDetected | 输入的内容可能包含敏感信息 |
InputTextSensitiveContentDetected | 提示词可能包含敏感信息 |
InputImageSensitiveContentDetected | 输入的图片可能包含敏感信息 |
InputVideoSensitiveContentDetected | 输入的视频可能包含敏感信息 |
InputAudioSensitiveContentDetected | 输入的音频可能包含敏感信息 |
OutputVideoSensitiveContentDetected | 生成的视频可能包含敏感信息 |
错误码还可能带有更具体的后缀,例如 .PrivacyInformation(可能包含真人)、.PolicyViolation(可能涉及版权),如 InputImageSensitiveContentDetected.PrivacyInformation。
审核不通过的请求和任务都不扣费。
处理错误
官方 SDK 收到错误响应时抛出异常(Go 返回 error),可以从中取出 HTTP 状态码、错误码、错误信息和 request_id:
捕获错误
import os
from arkruntime import Ark
from arkruntime._exceptions import ArkAPIStatusError
client = Ark(
base_url="https://your-domain/ark/api/v3",
api_key=os.environ.get("ARK_API_KEY"),
)
try:
task = client.content_generation.tasks.create(
model="doubao-seedance-2-0-260128",
content=[{"type": "text", "text": "清晨的海边,一只金毛犬沿着浪花奔跑,镜头缓慢跟随,阳光穿过薄雾"}],
)
print(task.id)
except ArkAPIStatusError as e:
# e.body 是返回结果里的 error 对象
print(e.status_code, e.code, e.body["message"])
print("request_id:", e.body["request_id"])- Python:异常类型是
ArkAPIStatusError。e.request_id是 SDK 自己生成的 ID,反馈问题时请提供e.body["request_id"]。 - Go:错误类型是
*model.APIError,用errors.As取出。 - 官方 SDK 默认会对 429 和 5xx 自动重试 2 次,重试仍失败才抛出异常;Python 可以在创建客户端时用
max_retries调整,Go 用arkruntime.WithRetryTimes。 - 没有收到返回结果的网络错误(超时、连接失败等)不会有错误码,需要单独处理。