Automotion docs

Error catalog

Every error the Automotion API can return, with status codes, causes and fixes.

Every error the platform can produce comes from this single catalog. Each error carries a stable code, a human-readable message, an optional path (the exact JSON path of the offending field) and a docsUrl pointing at its page below.

error envelope
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Opacity must be between 0 and 1.",
    "path": "scenes[0].elements[1].opacity",
    "docsUrl": "https://automotion.dev/docs/errors/validation_error"
  },
  "requestId": "req_0123456789abcdef0123456789abcdef"
}

Document-validation failures additionally include an errors array with all findings (error is always errors[0]), so you can fix everything in one pass.

CodeHTTPSummary
AUTH_TOKEN_EXPIRED400The verification or password-reset link has expired.
AUTH_TOKEN_INVALID400The verification or password-reset link is invalid or already used.
BILLING_WEBHOOK_INVALID400A billing webhook signature or body failed verification.
ELEMENT_ID_DUPLICATE400Two elements share the same id; element ids must be unique across the movie.
EMAIL_ALREADY_EXISTS400An account with this email address already exists.
SCENE_EMPTY400A scene has no elements.
SCENE_ID_DUPLICATE400Two scenes share the same id; scene ids must be unique within the movie.
SCHEMA_INVALID400The movie document is not a valid Automotion movie.
UNSUPPORTED_SCHEMA_VERSION400The "schema" version tag is missing or not supported.
VALIDATION_ERROR400A field in the movie document failed validation.
VARIABLE_MISSING400A referenced variable has no supplied value and no default.
VARIABLE_TYPE_MISMATCH400A supplied variable value does not match its declared type.
VARIABLE_UNDECLARED400A {{placeholder}} references a variable that is not declared in movie.variables.
UNAUTHORIZED401The request is missing a valid API key.
INSUFFICIENT_CREDITS402The credit balance cannot cover this render's estimated cost.
FORBIDDEN403The API key is valid but not allowed to perform this action.
TOPUP_REQUIRES_SUBSCRIPTION403Credit top-ups are available to active subscribers only.
WEBHOOKS_NOT_ALLOWED403webhook_url requires a paid plan with the webhooks perk.
NOT_FOUND404The requested resource does not exist.
USER_NOT_FOUND404The referenced user does not exist.
IDEMPOTENCY_KEY_REUSED409An Idempotency-Key was reused with a different request body.
ASSET_FETCH_FAILED422A referenced asset could not be downloaded.
ASSET_NOT_FOUND422A referenced asset URL returned 404 or does not exist.
ASSET_UNSUPPORTED_TYPE422A referenced asset has an unsupported content type.
HTTP_FETCH_FAILED422An outbound HTTP fetch of a supplied URL failed.
URL_NOT_ALLOWED422A supplied URL was rejected by the egress guard (scheme or address not allowed).
CONCURRENCY_LIMIT429Too many renders are running concurrently for the plan.
RATE_LIMITED429Too many API requests in the current window.
INTERNAL500An unexpected internal error occurred.
METERING_FAILED500Usage metering could not be recorded.
RENDER_FAILED500The render pipeline failed to produce an output video.
BILLING_FAILED502A billing-provider operation failed.
CACHE_FAILED502A cache (Redis) operation failed.
EMAIL_SEND_FAILED502A transactional email could not be sent.
IMAGE_GEN_FAILED502AI image generation failed for an image element.
LLM_FAILED502AI text generation failed.
QUEUE_FAILED502A render-queue operation failed.
STORAGE_FAILED502A storage (S3) operation failed.
TTS_FAILED502Text-to-speech synthesis failed for a voice element.
LOCK_NOT_ACQUIRED503A distributed lock could not be acquired; the operation is safe to retry.
RENDER_TIMEOUT504The render did not finish within the allowed time.