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:
| Status | Meaning |
|---|---|
queued | Accepted and waiting to be processed. |
started | Currently being processed. |
delivered | Completed successfully and uploaded to your destination’s storage. |
creation_failed | Failed during processing (e.g. unreachable URL, bad input file). |
delivery_failed | Processed successfully but couldn’t be uploaded (e.g. storage misconfig). |
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.
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 queued → started → delivered within seconds for image and document work; longer for video transcodes and large URL captures.