The Lume SDK uses a hierarchy of custom exceptions to allow for fine-grained error handling. All SDK-specific exceptions inherit from a base LumeError.

Exception Hierarchy


Base Exception

LumeError

LumeError

The base exception class for all errors raised by the Lume SDK. Catching this exception will handle any error originating from the SDK.


API Errors

These errors occur when there is an issue with the request sent to the Lume API, typically during calls to lume.init() or lume.run().

ApiError

ApiError

A generic error related to communicating with the Lume API. This can be caused by network issues or unexpected server responses. Inherits from LumeError.

AuthenticationError

AuthenticationError

Raised when the provided API key is invalid, expired, or missing. Inherits from ApiError.

InvalidRequestError

InvalidRequestError

Raised when the request is malformed. This commonly occurs if the flow_version does not exist or if the source_path is invalid. Inherits from ApiError.


Run Errors

These errors are related to the execution of a pipeline.

RunError

RunError

A generic error related to the state or execution of a run. Inherits from LumeError.

RunFailedError

RunFailedError

Raised by run.wait() if the run terminates in a FAILED or CRASHED state. The run object that raises the exception will have its final status and metadata populated.

Example

try:
    run.wait()
except lume.RunFailedError as e:
    print(f"Run failed with status: {run.status}")
    print(f"Error details: {run.metadata.get('error')}")

RunTimeoutError

RunTimeoutError

Raised by run.wait() if the specified timeout is reached before the run completes. Inherits from RunError.