When a request fails, the API will respond with an appropriate 400 or 500 error in the following format in the body of the response:

{
    'error': 'Error Name',
    'message': 'A description of the specific error conditions.',
    'statusCode': 400
}
ErrorDescription
Bad RequestGeneric request error. The message should indicate the specific parameter which was invalid.
ForbiddenThe request failed to authenticate the supplied API key
UnauthorizedThe supplied API key failed authorization for the requested resource
Not FoundThe specified resource does not exist or could not be found.
Internal Server ErrorA service was unexpectedly offline, unavailable, or failed in an unknown manner.

Job Errors

The following errors are specific to the /job (API reference) resource:

ErrorDescription
BillingErrorGeneric error inside of the billing service
CircuitTooLargeThe circuit has too many unique gates on a single qubit which created an error when converting to pulse waveforms on-system
CompilationErrorGeneric failure in our compilation service
ContractExpiredErrorThe billing service shows that the contract governing the key being used has expired
DebiasingErrorUnknown execution error when using debiasing (an IonQ-provided error mitigation technique)
InternalErrorAn unattributable internal error
NotEnoughQubitsThe backend you are submitting to has fewer qubits than this job requires
OptimizationErrorGeneric error in our optimization service
PreflightErrorGeneric error during preflight checks. This most often occurs when the input circuit is syntax checked and includes malformed gates, commands, formats, or similar
QuantumComputerErrorGeneric failure that occured while the job was being processed on-QPU
QuotaExhaustedErrorThe billing system shows that your user, project, or organization has an inadequate credit balance to run this job
SimulationErrorGeneric failure in our simulation service
SimulationTimeoutTimeout error in our compilation service. This is most commonly caused by simulations that are too large for the service to simulate before hitting our runaway process timeout
SystemCancelA member of IonQ staff has manually cancelled your job. This most often occurs as a result of a customer request, but can sometimes represent manual resolution of an unknown failure mode
TooLongPredictedExecutionTimepreflight error of a specific type: the predicted execution time for the circuit was longer than the single-job timeout duration for a given backend
TooManyControlsThe job submitted includes a multi-control gate with more control qubits (7 or more) than the target backend allows
TooManyGatesPreflight error of a specific type: the job submitted includes more gates per circuit than the target backend allows
TooManyShotsPreflight error of a specific type: the job submitted requested more shots than the target backend allows
UnknownBillingErrorUnknown error related to but not originating from our billing service. This most often means the service is briefly unavailable for some reason.
UnsupportedGatePreflight error of a specific type: the job submitted uses a gate that the target backend does not allow