Skip to main content
Every error response uses the same shape:
Check the HTTP status and error.code before reading data.

Codes

Which plan lifts a PLAN_LIMIT?

A compose video above your plan and a GPU job on Free return PLAN_LIMIT with error.details, a list of problems shaped { path, message, upgradeTo }. upgradeTo is "pro" or "studio", the cheapest plan that runs the job. It is null when only an enterprise plan does. Read upgradeTo instead of parsing the message.

Storage connections

Creating, testing, or updating a storage connection returns these codes: A failed delivery does not return an error code. The job reports a reason for that destination instead. See delivery errors.

How do I handle the common errors?

The three you’ll hit most: INSUFFICIENT_CREDITS, RATE_LIMITED, VALIDATION_ERROR.

See also

  • Plan limits: caps behind PLAN_LIMIT and RATE_LIMITED
  • Job lifecycle: where RUNNER_ERROR and RUNNER_TIMEOUT surface
  • Credits and billing: INSUFFICIENT_CREDITS and the prepaid model
  • FAQ: common questions about failed jobs and refunds
  • Pricing: plan that lifts your concurrency and rate caps
Last modified on October 20, 2026