Halloween sale · up to 40% off your first month + bonus credits, claimable daily

Claim it

Official BytePlus partnerBytePlus, a ByteDance company

API

Seedance API errors: what each code means and how to fix it

Every Seedance API error on KreatorFlow explained: 400, 401, 402, 404, 409, 413 and 429 responses, failed and declined jobs, and how to fix each one.

KreatorFlow4 min read
A hand reaching toward a dark control console where one amber light glows among rows of blue lights
On this page
  1. Short answer
  2. Debug a failed Seedance request
  3. Request errors (the HTTP call fails)
  4. Job errors (the job ends as failed, tokens released)
  5. Why was my reference rejected?
  6. Why does the output have a different aspect ratio?
  7. Why did camera_fixed fail with an image input?
  8. Frequently asked questions

Short answer

There are two kinds of errors. Request errors fail the HTTP call itself (wrong parameters, bad key, low balance, rate limit) and nothing is reserved. Job errors end an accepted job as failed, with an errorCode on the job, and its reserved tokens are released. The tables below list every code with the fix.

Updated:

Debug a failed Seedance request

  1. 1

    Read the code, not the message

    Branch on code (request errors) or job.errorCode (job errors); messages can change, codes do not.

  2. 2

    Check limits first

    Most 400s are a duration, resolution or aspect ratio the model does not offer. GET /v1/models lists each model's limits.

  3. 3

    Respect 429s

    Wait the seconds in Retry-After before sending again.

  4. 4

    Resend safely

    After a timeout, resend with the same Idempotency-Key. After a declined prompt, change it and use a new key.

Request errors (the HTTP call fails)

CodeStatusMeaningFix
invalid_api_key401The key is missing, wrong or revoked.Send Authorization: Bearer <key>. Create a new key if it was revoked.
insufficient_balance402Not enough tokens for the quoted cost.Top up under Billing. data.top_up_url links there.
account_not_active403The developer account is suspended.Contact support.
scope_missing403The key lacks the scope this endpoint needs.Use a key with that scope.
job_not_found404No job with that id for this key's account.Check the id; jobs are private to the account.
character_not_found404The character id or slug doesn't exist.List characters with GET /v1/characters.
upload_not_found404The upload_id doesn't exist in this workspace.Create the upload again.
reference_upload_not_found404A reference upload_id doesn't exist in this workspace.Re-upload the file and use the new upload_id.
video_edit_source_not_found404The source_video_upload_id doesn't exist.Upload the clip with upload_type VIDEO.
upload_in_use409A queued or processing job still uses this upload.Delete it after the job finishes.
character_pending409The character is still being reviewed. Nothing was reserved.Wait retry_after seconds, then retry.
upload_too_large413The file is over the size limit for its type.Images 50 MB, video 200 MB, audio 15 MB.
character_registration_failed422The character image did not pass review.Register the character again with another image.
rate_limited429Too many requests in the window.Wait the seconds in the Retry-After header.
prompt_required400No prompt (or text for speech) was sent.Add a prompt.
prompt_too_long400The prompt is over the model's limit.Shorten it; GET /v1/models lists maxPromptChars.
model_not_found400Unknown model alias.Use an id from GET /v1/models.
duration_not_supported400The model doesn't offer that length.Send one of the model's durations.
aspect_ratio_not_supported400The model doesn't offer that aspect ratio.Send one of the model's aspect ratios.
resolution_not_supported400The model doesn't offer that resolution.Send one of the model's resolutions.
reference_combination_not_supported400These references can't be combined, e.g. start/end frames with reference images.Send one kind per request.
character_prompt_unsafe400A character prompt asks to match a real person.Describe appearance, wardrobe, pose and style instead.
person_match_prompt_unsafe400A reference prompt asks to match a real person's face or likeness.Register an owned character and describe the look instead.
upload_invalid400The upload request is missing a field or has a bad type.Send file_name, mime_type, file_size and upload_type.
video_edit_model_not_supported400Video edits need a Seedance 2.0 family model (2.0, Fast or Mini).Use kreator-video-pro, kreator-video-fast or kreator-video-mini.
video_edit_source_required400A video edit needs a source clip.Send source_video_upload_id or video.
voice_required400Speech needs a voice.Use an id from GET /v1/voices.
internal_error500Something failed on our side.Retry with the same Idempotency-Key.
dispatch_disabled503Generation is paused for this environment.Retry later.

Job errors (the job ends as failed, tokens released)

CodeMeaningFix
reference_rejectedA reference was declined (often a real person's photo).Register the face as a character, or use another image.
reference_asset_pendingA new reference is still being reviewed.Wait errorData.retry_after seconds, resubmit with the same upload_id and a new Idempotency-Key.
reference_asset_failedThe reference did not pass review.Use a different file.
generation_rejectedThe request was declined (prompt, reference or options).Change the prompt, reference or options, then retry.
generation_timeoutThe job did not finish in time. Reserved tokens are released.Retry with a new Idempotency-Key.
generation_unavailableThe model is temporarily unavailable.Retry later or pick another model.
generation_failedThe generation failed.Retry; change the prompt or references if it repeats.

Why was my reference rejected?

References and prompts that ask to match a real person, a celebrity or a public figure are declined. That covers photos of real people used as references and prompts that name a person to imitate. Describe appearance, wardrobe and style instead, or register a character you own with POST /v1/characters and pass its id.

Why does the output have a different aspect ratio?

With an input image or first frame, adaptive follows the image. Send an explicit aspect_ratio when the output must match a format, and check the model offers it.

Why did camera_fixed fail with an image input?

Leave camera_fixed out when you send an image or frame input, and describe the camera in the prompt instead (for example locked-off camera).

Frequently asked questions

Am I charged when a Seedance job fails?

No. A failed job's reserved tokens are released.

What does insufficient_balance mean?

Your token balance is lower than the job's quote. Top up in the console; nothing was reserved.

What should I do on a 429?

Wait the number of seconds in the Retry-After header, then send again.

Why was my prompt declined?

It asked to match a real person or broke the acceptable use policy. Change the prompt and create a new job.

Errors you can act on

Stable codes, a fix for each, and no charge for failed jobs.

More guides