Skip to content

Job Lifecycle

Every job on Open Quantum goes through a series of states from creation to completion.

Job States

Status Description Terminal?
Created Job submitted, awaiting credit deduction. No
Pending Credits deducted, awaiting execution dispatch. No
Queued Dispatched to a backend, waiting in the execution queue. No
Running Circuit is being executed on the backend. No
Completed Execution finished, results available. Yes
Failed Job failed at any stage. Credits refunded. Yes
Canceled User canceled the job. Credits refunded. Yes

Preparation Phase

Before a job can be submitted, the circuit must be uploaded and prepared.

Execution Phase

Once a job enters the Pending state:

  • The platform dispatches the circuit to the requested backend.
  • The circuit is executed on the QPU.
  • Results are validated and made available for download.

Completion

When execution succeeds, results are available for download via a presigned URL. The URL is valid for 1 hour and regenerated on each job fetch.

Retry Behavior

If execution fails (hardware error, timeout, etc.):

  • The job is retried up to 3 times.
  • After 3 failed attempts, the job transitions to Failed and credits are refunded.

Cancellation

Jobs can only be canceled from the Pending state:

scheduler.cancel_job("job-uuid")

Cancel jobs from the Open Quantum Portal under Jobs.

Warning

Jobs in Queued or Running status cannot be canceled. Once execution has been dispatched, you must wait for it to complete or fail.

Constraints

  • Maximum 10 active jobs per organization (Created, Pending, Queued, or Running).
  • Maximum QASM file size is 10 MB.

SDK Behavior

All three SDKs handle the job lifecycle automatically. The Core SDK's submit_job(), the Qiskit plugin's backend.run(), and the PennyLane plugin's execute() all manage upload, preparation, submission, polling, and result retrieval internally.