Skip to main content

Error Response Format

Error responses return a JSON body with the appropriate HTTP status code:
{
  "message": "Invalid request parameters"
}

Insufficient Credits (402)

The 402 response includes additional fields:
{
  "message": "Insufficient credits",
  "required": 200,
  "available": 10
}
required — credits needed for the task. available — your current balance.

Concurrency Limit (429)

The 429 response is returned when you have too many tasks in progress:
{
  "message": "Concurrency limit reached (3). You have 3 tasks in progress. Please wait for them to complete, or join our Discord for higher limits.",
  "limit": 3,
  "current": 3
}
limit — maximum concurrent tasks allowed. current — your active task count.

HTTP Status Codes

CodeMeaningDescription
200SuccessRequest completed
400Bad RequestInvalid parameters or inputs
401UnauthorizedMissing or invalid API key
402Payment RequiredInsufficient credits
403ForbiddenAPI access not enabled, or querying another user’s task
404Not FoundTask ID does not exist
429Too Many RequestsConcurrency limit reached
500Server ErrorInternal error, safe to retry

Common Error Messages

messageWhat to do
Missing Authorization headerAdd Authorization: Bearer YOUR_API_KEY header
Invalid API KeyCheck your API key in Account
Insufficient creditsAdd credits in Account
Invalid request parametersCheck required fields and model name
Invalid inputs for modelVerify parameter types and values
Concurrency limit reachedWait for current tasks to complete
Missing taskId parameterProvide taskId query parameter
Task not foundVerify the task ID
API access not enabled for this accountContact support to request developer access
Access deniedYou can only query your own tasks

Task Failure States

When polling task status via Get Task Status, check the status field:
  • waiting — task queued, keep polling
  • generating — in progress, keep polling
  • success — done, read output array for video URL
  • fail — failed, read error for details

Fail Response Example

Both Get Task Status and Webhooks return the same error object format:
{
  "taskId": "task_clxxxxxx",
  "model": "seedance-20",
  "status": "fail",
  "error": {
    "code": "2038",
    "message": "Your input text violates platform rules. Please modify and try again."
  }
}
  • error.code — machine-readable error code (e.g. "2038", "4011", "500")
  • error.message — human-readable description
A fail status means the generation itself failed. The HTTP response is still 200 — the error details are in the error field.

Task Error Messages

When a task fails, the error field contains one of the following messages. These are grouped by category to help you handle them in code.

Content Moderation — Input Rejected

These errors mean your input was flagged before generation started. Credits are refunded.
Error MessageCauseAction
Your input text violates platform rules. Please modify and try again.Prompt contains prohibited contentRevise your prompt
Your uploaded image violates platform rules. Please modify and try again.Source image flaggedUse a different image
Your uploaded video violates platform rules. Please modify and try again.Source video flaggedUse a different video
Content violates platform rules. Please modify and try again.General input violationModify input content

Content Moderation — Output Rejected

These errors mean the generated content was flagged after generation. Credits are refunded.
Error MessageCauseAction
The generated video did not pass review. Credits will not be deducted.Output video flaggedAdjust prompt and retry
The generated image did not pass review. Credits will not be deducted.Output image flaggedAdjust prompt and retry
The generated audio violates platform rules. Please adjust your prompt or images and try again.Output audio flaggedAdjust prompt and retry
The generated content violates platform rules. Please adjust your prompt or images and try again.General output violationAdjust prompt and retry

Face Detection

Error MessageCauseAction
Face detected in uploaded media. Please adjust your media and try again.Uploaded image/video contains a human faceRemove or crop faces from input media

Media Upload Errors

Error MessageCauseAction
Media upload failed. Please check your file format, size, and duration (audio max 15s, video max 15s).Uploaded audio/video exceeds duration limit or has unsupported formatTrim audio to ≤15s, video to ≤15s
Your uploaded image violates platform rules. Please use a different image.Image failed content detectionUse a different image

Server & Processing Errors

These are transient errors. Credits are refunded. Safe to retry. Any error message containing “Please try again” or “Please try again later” falls into this category. Common examples:
  • Server error. Please try again later.
  • Video generation failed. Please try again.
  • Generation timed out. Please try again.
  • Task submission failed. Please try again.
If the message mentions “different content”, “different images”, or “adjust your prompt”, modify your input before retrying.
All unrecognized internal errors are normalized to generic messages to avoid leaking implementation details. If you see Video generation failed. Please try again., it is safe to retry.
Credit refund policy: All task failures automatically refund credits. You are only charged for successful generations.

When to Retry

DO retry: 500 (server error), 429 (concurrency limit — wait for tasks to complete), task errors containing “Please try again” DON’T retry: 400 (bad request), 401 (unauthorized), 402 (insufficient credits), 403 (forbidden), content moderation errors For a complete code example with error handling, see Quickstart.

Next Steps

Quickstart

Complete working example

API Reference

Full API documentation