iqm_error#

Full path: exa.common.errors.iqm_error

Shared error definitions for the IQM ecosystem.

This module provides the unified exception hierarchy used by both client and server components. By centralizing these definitions in a shared library, we ensure that error states are communicated and handled consistently across the network.

Architectural Context#

  1. Symmetric Logic: Components like SettingNode or Experiment use these errors for local validation. Sharing them ensures that a Validation failure on the client feels identical to one on the server.

  2. Type Preservation: Server-side errors (e.g., InternalServerError) are included here so the client can deserialize them into specific Python types rather than generic catch-all exceptions.

  3. Wire Compatibility: These exceptions map directly to HTTP status codes and the IQMServerError Pydantic data model.

Client-Relevant Errors#

While all errors can be received from the server, the following are most commonly raised or handled specifically in client-side logic:

Exceptions

AuthenticationError(message, *[, ...])

Raised when the caller is not authenticated or credentials are missing.

BadGatewayError(message, *[, error_code, ...])

Raised when an invalid or unintelligible response is received from a dependency.

BadRequestError

alias of InvalidOperationError

CircuitExecutionError(message, *[, ...])

Raised when a failure occurs during the physical execution of a circuit.

CircuitTranspilationError(message, *[, ...])

Raised when a circuit cannot be transpiled, typically due to hardware constraints.

CircuitValidationError(message, *[, ...])

Raised when a circuit is well-formed but violates hardware or logical constraints.

ConflictError(message, *[, error_code, ...])

Raised when an operation conflicts with the current state of the system.

DataSizeError(message, *[, error_code, ...])

Raised when the provided data exceeds the allowed size limits.

EmptyComponentListError(message, *[, ...])

Raised when an empty list is given as components for running an experiment.

EngineInitialisationError([message, log_level])

Raised when the station control engine fails to initialize.

ForbiddenError(message, *[, error_code, ...])

Raised when the user is authenticated but lacks permission for the operation.

GatewayTimeoutError

alias of OperationTimeoutError

IQMError(message, *[, error_code, log_level])

Base exception for the IQM ecosystem logic.

InternalServerError

alias of InternalSystemError

InternalSystemError(message, *[, ...])

Raised when an unexpected internal failure occurs.

InvalidOperationError(message, *[, ...])

Raised when the operation parameters are invalid or the action is unsupported.

NotFoundError(message, *[, error_code, ...])

Raised when a requested resource or data point was not found.

OperationTimeoutError(message, *[, ...])

Raised when an operation or a call to a dependency fails to complete in time.

PayloadTooLargeError

alias of DataSizeError

RateLimitError(message, *[, error_code, ...])

Raised when the operation frequency exceeds the allowed limit in a given timeframe.

ServiceUnavailableError

alias of SystemUnavailableError

SystemUnavailableError(message, *[, ...])

Raised when a required system component is temporarily unable to operate.

TooManyRequestsError

alias of RateLimitError

UnauthorizedError

alias of AuthenticationError

UnknownObservationError(message, *[, ...])

Raised when an observation name is syntactically correct but contains unknown elements.

UnknownSettingError(message, *[, ...])

Raised when a SettingNode attribute is not found.

ValidationError(message, *[, error_code, ...])

Raised when data is well-formed but semantically invalid.