Reference

Job lifecycle

A job moves through a small set of statuses. The SDK reports each transition, and with verbose mode (on by default) it also prints the finer phase within a status.

Statuses

PENDING: created and waiting for upload, submit, or a worker. RUNNING: a worker is executing the circuit. SUCCEEDED: the result is available. FAILED: the job failed. CANCELLED: the job was cancelled. Terminal statuses: SUCCEEDED, FAILED, CANCELLED. is_done() is True for these.

Phases

While a job is PENDING then RUNNING, the platform also reports a phase so you can see exactly what is happening (most useful on a cold start, when provisioning a GPU worker takes a few minutes):

queued -> provisioning compute -> pulling runner image -> running simulation -> uploading result

Timestamps

Each transition records a timestamp on the job record, available via to_dict() or the handle's fields:

created_at job created submitted_at inputs uploaded and submitted started_at a worker began executing completed_at reached a terminal status