invalid_request は画像サイズの制約違反でも返されるため, 画像入力が非対応とは限りません.
エラーを読む場所
説明用のリクエストエラー例:
code は HTTP ステータスとは別です. success: false の本文も確認してください.
code はエラー識別, 任意の reason はタスク失敗の分類, message は具体的な説明です. error.type は必ずしもコードと一致しません. メッセージは言語で変わるため完全一致で処理を分岐しないでください. 認証エラーの code が空の場合や, type と message だけの形式もあります.
リクエストエラー早見表
公開 API で発生し得る識別子です. すべてのエンドポイントが全項目を返すわけではなく, モデル固有の表記が残る場合もあります. フィールドの位置は上表で確認してください.invalid_request の具体的な原因
実際のリクエストと失敗タスクの診断から整理した例です. 汎用パラメータコード, 詳細なreason, モデル固有コードで返る場合があります. 変更前に対象フィールドと説明を確認してください.
過去のエラーの数値は全モデル共通ではありません. 画像入力への対応はモデル仕様で判断し,
invalid_request や invalid_image だけで判断しないでください.
タスクの失敗理由
ID 取得後は照会状態に従います. 通常の生成失敗ではerror.code=generation_failed がよく使われ, 任意の error.reason が詳細を示します. 以下は reason 値であり, リクエストの code として必ず返るわけではありません.
error.input_media_errors がある場合は各項目の type, index, message を確認します. type=image, index=0 は元のリクエストの最初の画像を示すため, その素材を修正できます. 全モデルや照会形式で提供されるわけではありません.
一部モデルは
InvalidParameter.TaskTypeConstraint, RateLimitReached, InputImageSensitiveContentDetected, OutputVideoSensitiveContentDetected などをそのまま返します. 順にタスク制約, 制限, 入力審査, 出力審査に関係する場合があります. 網羅的な一覧ではありません.
Seedance Global の error.code と error.message は元の JSON 値を保持し, 数字や null, 省略もあり得ます. OpenAI 動画形式や Webhook は reason を保証しません. 未知のコード, 省略, 型の違いを許容し, 元の数字コードを HTTP ステータスと解釈しないでください.
再試行と送信結果の復旧
- パラメータ, 形式, 内容審査: 入力を修正してから再送信します. 変更なしの再試行では通常解決しません.
- 頻度制限や一時的な利用不可:
Retry-Afterを優先し, なければジッター付き指数バックオフと回数制限を使います. - タスク ID がある場合: 同じタスクを照会するかタスク Webhookを受信します.
queuedとin_progressは失敗ではなく, 重複作成は不要です. - 動画送信のタイムアウトや
submission_unconfirmed: 元の送信でclient_request_idを使用した場合, 同じアカウントでGET /v1/video/requests/{client_request_id}を呼びます.task_idがあれば照会し,submitting/unknownなら待機します.state=failedかつerror_code=submission_rejectedの場合だけ拒否を確認でき, 案内に従って新規送信できます. この機能は対応する動画入口で当該フィールドを使用した場合に限ります.
billing を確認してください. 省略は無料や返金完了を意味しません. Webhook はイベントのスナップショットであり, 後の照会と課金フィールドが異なる場合があります.