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 状态码typecode说明
400BadRequestMissingParameter缺少必填参数,例如 model、content,或者当前生成方式需要的提示词、素材
400BadRequestInvalidParameter参数不合法或模型不支持,例如分辨率、时长、画幅超出模型的范围,素材无法下载或格式不对。param 是出错的参数,message 说明具体原因
400BadRequestInvalidAction任务当前的状态不支持这个操作,例如取消已经开始生成或已经结束的任务
400BadRequestSensitiveContentDetected 等输入的提示词或素材未通过审核,见审核错误码
401UnauthorizedAuthenticationErrorAPI Key 缺失、无效、已禁用或已过期
403ForbiddenAccessDenied没有权限:API Key 不能使用这个模型、请求的 IP 不在 API Key 的白名单里,或者账号已被禁用
403ForbiddenAccountOverdueError账户余额不足,充值后重试
404NotFoundInvalidEndpointOrModel.NotFound模型不存在、已下线,或者不是 Seedance 系列模型(其他模型请用 OpenAI 格式调用)
404NotFoundResourceNotFound任务不存在或不属于当前账号,接口路径写错时也返回这个错误码
429TooManyRequestsSetLimitExceededAPI Key 的额度已用完,可以在控制台 → API Keys调高额度
429TooManyRequestsAccountRateLimitExceeded请求过于频繁,按 Retry-After 响应头给出的秒数等待后重试
429TooManyRequestsServerOverloaded当前排队的任务较多,或者模型暂时没有可用资源,稍后重试
500InternalServerErrorInternalServiceError服务内部错误或模型服务暂时不可用,稍后重试;多次失败时请带上 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。
  • 没有收到返回结果的网络错误(超时、连接失败等)不会有错误码,需要单独处理。