Log In Sign Up

Docs

Status lifecycle

Every conversion task and render job moves through the same status enum. Here's what each state means and which are terminal.

Both conversion-task and job resources share a single status enum:

StatusMeaning
queuedAccepted and waiting to be processed.
startedCurrently being processed.
deliveredCompleted successfully and uploaded to your destination’s storage.
creation_failedFailed during processing (e.g. unreachable URL, bad input file).
delivery_failedProcessed successfully but couldn’t be uploaded (e.g. storage misconfig).

What delivered carries

Once a task reaches delivered, responses and webhook payloads include file_name (the object name in your destination’s storage) and, when the destination has a public base URL or public storage, a directly fetchable url.

The done boolean

The done field in responses is shorthand for status === "delivered". Use it as a quick check when polling.

Terminal states

Treat both _failed statuses as terminal: the job will not retry automatically. You’ll need to resubmit. The underlying failure reason for any specific job is visible in the dashboard, and where a machine-readable reason exists the response carries an error_code.

For automatic retries, wrap your submission in your own retry loop with a reasonable backoff (exponential, capped) and stop after a small number of attempts.

State diagram

queued ──> started ──> delivered

                  ├──> creation_failed   (processing error)

                  └──> delivery_failed   (upload error)

A typical happy-path conversion moves queuedstarteddelivered within seconds for image and document work; longer for video transcodes and large URL captures.