wallaroo.exceptions


@dataclass
class APIErrorResponse:

Standardized structure for API error responses.

Attributes: code: HTTP status code of the error status: Status message (e.g., "error", "failed") error: Detailed error message source: Source of the error (e.g., "engine", "sidekick") original_response: Original response object for fallback

APIErrorResponse( code: Optional[int] = None, status: Optional[str] = None, error: Optional[str] = None, source: Optional[str] = None, original_response: Optional[httpx.Response] = None)
code: Optional[int] = None
status: Optional[str] = None
error: Optional[str] = None
source: Optional[str] = None
original_response: Optional[httpx.Response] = None
@classmethod
def from_response(cls, response: httpx.Response) -> APIErrorResponse:

Create an APIErrorResponse from a httpx.Response object. Handles two error response structures:

  • axum-util: { "msg": "...", "code": 400 }
  • fitzroy: { "code": 400, "status": "Error", "error": "...", "source": "engine" } Falls back gracefully if expected fields are missing.
class WallarooAPIError(builtins.Exception):

Base exception class for all Wallaroo API errors.

Attributes: code: HTTP status code of the error status: Status message error: Detailed error message source: Source of the error response: Original APIErrorResponse object

WallarooAPIError( error_response: APIErrorResponse, prefix: str = '')
code
status
error
source
response
prefix
def handle_errors(http_error_class=None):

Decorator to handle HTTP errors and convert them to appropriate custom errors.

Parameters
  • error_class: The specific error class to use for HTTP errors. If None, uses WallarooAPIError.
class InferenceError(WallarooAPIError):

Raised when inference fails

InferenceError(response: httpx.Response)
class InferenceTimeoutError(builtins.Exception):

Raised when inference fails because of connection or timeout errors.

InferenceTimeoutError(error)
class ModelUploadError(WallarooAPIError):

Raised when a model file fails to upload.

ModelUploadError(response: httpx.Response)