Exceptions#
- exception ccat_data_transfer.exceptions.CCATDataOperationError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
ExceptionBase exception for all CCAT data operations.
- exception ccat_data_transfer.exceptions.ScheduleError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorError scheduling a task.
- exception ccat_data_transfer.exceptions.NetworkError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorNetwork connectivity errors.
- exception ccat_data_transfer.exceptions.StorageError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorStorage-related errors (disk full, permission issues, etc.)
- exception ccat_data_transfer.exceptions.SourceMissingError(message, *, step=None, side=None, path=None, host=None, diagnosis=None, operation_id=None)[source]#
Bases:
StorageErrorA required source file/path was missing or unreadable at a boundary.
Raised by
ensure_readable(seeboundary.py) in place of the bareFileNotFoundErrorthat several filesystem touch-points used to leak. It carries the Tier-2error_contextbreadcrumb fields (where/why) as attributes so the failure hook can lift them into the structurederror_context(#118). See docs/adr/0002-filesystem-boundary-errors.md and CONTEXT.md.is_retryableis forced toFalse: the bareFileNotFoundErrorthis replaces was non-retryable (should_retryhard-codes it so), andStorageErrorwould otherwise default to retryable. This issue is breadcrumbs only — it must NOT change retry behavior.
- exception ccat_data_transfer.exceptions.DataCorruptionError(message, operation_id=None)[source]#
Bases:
CCATDataOperationErrorData integrity or corruption errors.
- exception ccat_data_transfer.exceptions.ArchiveError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorErrors during archiving operations.
- exception ccat_data_transfer.exceptions.PackageError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorErrors in package creation or manipulation.
- exception ccat_data_transfer.exceptions.DeletionError(message, operation_id=None, is_retryable=True, max_retries=3, context=None)[source]#
Bases:
CCATDataOperationErrorErrors during deletion operations.
- exception ccat_data_transfer.exceptions.PermanentError(message, operation_id=None)[source]#
Bases:
CCATDataOperationErrorErrors that should not be retried.
- exception ccat_data_transfer.exceptions.OperationNotFoundError(message, operation_id=None)[source]#
Bases:
CCATDataOperationErrorThe operation row addressed by a task does not exist.
Raised when a task is dispatched with an operation id that resolves to no row (a dangling or mis-addressed id – e.g. a stale task message that names an id belonging to a different operation kind). This is a permanent state: a missing row never reappears, so retrying only loops forever.
is_retryableis forced toFalse(mirroringPermanentError): the base task’sshould_retryotherwise defaults an unrecognised exception to retryable, which turned a dangling id into an infinite retry loop. The dedicated name (over reusingPermanentError) makes the dangling-id cause self-evident in logs and tracebacks.
Bases:
CCATDataOperationErrorTemporary service unavailability.
- exception ccat_data_transfer.exceptions.ServiceExit[source]#
Bases:
ExceptionCustom exception which is used to trigger the clean exit of all running threads and the main program.
- exception ccat_data_transfer.exceptions.DataTransferError(message: str, transfer_id: int | None = None)[source]#
Bases:
CCATDataOperationErrorBase exception for all data transfer errors
- exception ccat_data_transfer.exceptions.BBCPError(message: str, returncode: int, stderr: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorBBCP specific errors
- exception ccat_data_transfer.exceptions.DestinationFileExistsError(message: str, returncode: int, stderr: str, transfer_id: int | None = None, destination_path: str | None = None)[source]#
Bases:
BBCPErrorError when destination file already exists and needs to be removed before retry.
- exception ccat_data_transfer.exceptions.SegmentationFaultError(message: str, returncode: int, stderr: str, transfer_id: int | None = None)[source]#
Bases:
BBCPErrorSegmentation fault error
- exception ccat_data_transfer.exceptions.ConfigurationError(message: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorConfiguration/setup related errors
- exception ccat_data_transfer.exceptions.DatabaseError(message: str, original_error: Exception, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorDatabase related errors
- exception ccat_data_transfer.exceptions.RetryableError(message: str, transfer_id: int | None = None, max_retries: int = 3)[source]#
Bases:
DataTransferErrorBase class for errors that can be retried
- exception ccat_data_transfer.exceptions.NonRetryableError(message: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorBase class for errors that should not be retried
- exception ccat_data_transfer.exceptions.ArchiveCreationError(message: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorError during archive creation
- exception ccat_data_transfer.exceptions.UnpackError(message: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorError during unpacking
- exception ccat_data_transfer.exceptions.ChecksumVerificationError(message: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorChecksum verification error
- exception ccat_data_transfer.exceptions.ArchiveCorruptionError(message: str, archive_path: str, transfer_id: int | None = None)[source]#
Bases:
DataTransferErrorError indicating a corrupted or incomplete archive file.
Overview#
Custom exception classes for error handling in the data transfer system.
Key Components#
Custom exception hierarchy
Error handling patterns
Exception logging and reporting