#[non_exhaustive]pub enum RepositoryError {
Show 45 variants
SchemaUninitialized,
MigrationRequired {
current: u32,
supported: u32,
},
NewerSchema {
current: u32,
supported: u32,
},
IdentifierOutOfRange {
kind: IdentifierKind,
value: u64,
},
JobInstanceNotFound {
id: JobInstanceId,
},
JobExecutionNotFound {
id: JobExecutionId,
},
StepExecutionNotFound {
id: StepExecutionId,
},
StepPartitionNotFound {
id: StepPartitionId,
},
EmptyPartitionPlan,
PartitionPlanTooLarge {
max: usize,
},
DuplicatePartitionKey,
PartitionPlanExists {
step_execution_id: StepExecutionId,
},
PartitionPlanNotCommitted {
step_execution_id: StepExecutionId,
},
PartitionUpdateNotAllowed {
id: StepPartitionId,
status: BatchStatus,
},
PartitionWorkerMismatch {
partition_id: StepPartitionId,
worker_step_execution_id: StepExecutionId,
},
PartitionWorkerAlreadyAssigned {
worker_step_execution_id: StepExecutionId,
},
PartitionWorkerStale {
partition_id: StepPartitionId,
worker_step_execution_id: StepExecutionId,
},
PartitionParentNotActive {
step_execution_id: StepExecutionId,
status: BatchStatus,
},
PartitionAggregationIncomplete {
step_execution_id: StepExecutionId,
status: BatchStatus,
},
PartitionStateCorrupt,
DuplicateIdentifier {
kind: IdentifierKind,
value: u64,
},
CompletedInstance {
id: JobInstanceId,
},
AbandonedInstance {
id: JobInstanceId,
},
ExecutionAlreadyActive {
instance_id: JobInstanceId,
execution_id: JobExecutionId,
status: BatchStatus,
},
DefinitionDrift {
job_name: JobName,
revision: DefinitionRevision,
},
DefinitionJobMismatch {
expected: JobName,
actual: JobName,
},
IncompatibleDefinition {
instance_id: JobInstanceId,
},
UnsupportedManifestVersion {
format: u16,
},
InvalidDefinitionUpgrade {
execution_id: JobExecutionId,
},
DefinitionUpgradeConflict {
job_name: JobName,
},
RestartStateNotFound {
execution_id: JobExecutionId,
step_name: StepName,
},
FaultStateCorrupt,
StartLimitExceeded {
instance_id: JobInstanceId,
node_id: NodeId,
limit: StartLimit,
},
FlowStateCorrupt,
RecoveryNotAllowed {
id: JobExecutionId,
status: BatchStatus,
},
ExecutionOwned {
id: JobExecutionId,
},
ExecutionOwnershipNotAllowed {
id: JobExecutionId,
status: BatchStatus,
},
Domain(DomainError),
Identifier(IdGenerationError),
Lifecycle(LifecycleError),
RetentionPlanStale,
UnsupportedCapability {
capability: RepositoryCapability,
},
ConcurrentModification,
CommitOutcomeUnknown,
Unavailable,
}Expand description
A stable repository failure independent of a database or async runtime.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SchemaUninitialized
The durable metadata schema has not been initialized.
MigrationRequired
The durable metadata schema must be migrated before use.
Fields
NewerSchema
The durable metadata schema is newer than this runtime.
Fields
IdentifierOutOfRange
A facade identifier cannot be represented by the durable adapter.
JobInstanceNotFound
A referenced job instance does not exist.
Fields
id: JobInstanceIdThe missing identifier.
JobExecutionNotFound
A referenced job execution does not exist.
Fields
id: JobExecutionIdThe missing identifier.
StepExecutionNotFound
A referenced step execution does not exist.
Fields
id: StepExecutionIdThe missing identifier.
StepPartitionNotFound
A referenced durable step partition does not exist.
Fields
id: StepPartitionIdThe missing partition identifier.
EmptyPartitionPlan
A partition plan contained no work.
PartitionPlanTooLarge
A partition plan exceeded the accepted M4 bound.
DuplicatePartitionKey
A partition plan repeated a byte-exact key.
PartitionPlanExists
A durable plan already exists for the parent step execution.
Fields
step_execution_id: StepExecutionIdParent partitioned step execution.
PartitionPlanNotCommitted
Worker assignment was attempted before the new plan transaction committed.
Fields
step_execution_id: StepExecutionIdParent partitioned step execution.
PartitionUpdateNotAllowed
A partition update was not valid for its durable state.
Fields
id: StepPartitionIdRejected partition.
status: BatchStatusStatus observed under compare-and-swap.
PartitionWorkerMismatch
The worker attempt does not belong to the partition parent’s job execution.
Fields
partition_id: StepPartitionIdRejected partition.
worker_step_execution_id: StepExecutionIdWorker attempt from a different job execution.
PartitionWorkerAlreadyAssigned
A worker attempt is already bound to another durable partition.
Fields
worker_step_execution_id: StepExecutionIdReused worker attempt.
PartitionWorkerStale
A completion did not name the currently assigned worker attempt.
Fields
partition_id: StepPartitionIdRejected partition.
worker_step_execution_id: StepExecutionIdWorker expected by the caller.
PartitionParentNotActive
The partition manager is no longer active and cannot mutate children.
Fields
step_execution_id: StepExecutionIdParent partitioned step execution.
status: BatchStatusCurrent parent lifecycle status.
PartitionAggregationIncomplete
At least one durable child has not published a runtime-terminal result.
Fields
step_execution_id: StepExecutionIdParent partitioned step execution.
status: BatchStatusChild status that prevented aggregation.
PartitionStateCorrupt
Durable partition state is contradictory, corrupt, or cannot be decoded.
DuplicateIdentifier
An injected source reused an existing identifier.
Fields
kind: IdentifierKindThe duplicated identifier category.
CompletedInstance
A completed logical instance cannot be launched again.
Fields
id: JobInstanceIdThe terminal logical instance.
AbandonedInstance
An abandoned logical instance cannot be launched again.
Fields
id: JobInstanceIdThe terminal logical instance.
ExecutionAlreadyActive
A prior attempt is active or requires explicit recovery.
Fields
instance_id: JobInstanceIdThe logical instance selected for launch.
execution_id: JobExecutionIdThe attempt preventing another launch.
status: BatchStatusIts current framework status.
DefinitionDrift
One job name and revision were bound to a different manifest.
Fields
revision: DefinitionRevisionReused application-owned revision.
DefinitionJobMismatch
A manifest was registered or launched under a different job name.
Fields
IncompatibleDefinition
The proposed definition cannot interpret the latest checkpoint.
Fields
instance_id: JobInstanceIdLogical instance whose last definition is incompatible.
UnsupportedManifestVersion
The runtime cannot interpret the supplied or persisted manifest format.
InvalidDefinitionUpgrade
A registered directed edge did not map a required durable step.
Fields
execution_id: JobExecutionIdNew execution whose mapped state could not be resolved.
DefinitionUpgradeConflict
A directed edge was already registered with different immutable content.
RestartStateNotFound
A restartable definition required durable step state that was absent.
Fields
execution_id: JobExecutionIdNew restart execution.
FaultStateCorrupt
Durable fault state could not be interpreted, so no work may begin.
Corruption, an unsupported fault-state version, a checksum mismatch, or state that belongs to a superseded checkpoint fails closed.
StartLimitExceeded
The instance-wide start limit for a logical step is exhausted.
Fields
instance_id: JobInstanceIdLogical instance whose historical starts were counted.
limit: StartLimitConfigured finite limit.
FlowStateCorrupt
Durable flow history is missing, contradictory, or corrupt.
RecoveryNotAllowed
Recovery was requested for a state that needs no recovery decision.
Fields
id: JobExecutionIdRejected execution.
status: BatchStatusDurable status observed under lock.
ExecutionOwned
A different process token is already recorded for the execution.
Fields
id: JobExecutionIdExecution that remains owned by another process token.
ExecutionOwnershipNotAllowed
Ownership was requested outside the newly-created STARTING boundary.
Fields
id: JobExecutionIdExecution that was not claimable.
status: BatchStatusDurable status observed under lock.
Domain(DomainError)
A domain value could not be constructed.
Identifier(IdGenerationError)
An injected identifier source failed.
Lifecycle(LifecycleError)
A lifecycle or optimistic-version rule rejected an update.
RetentionPlanStale
A purge candidate changed after its plan was produced.
Nothing was deleted. A new plan observes the remaining candidates.
UnsupportedCapability
The adapter does not provide a required repository capability.
Fields
capability: RepositoryCapabilityThe capability the caller required.
ConcurrentModification
Another committed unit of work invalidated this snapshot.
CommitOutcomeUnknown
A commit failed after PostgreSQL may have made it durable.
Callers must inspect durable metadata through a new healthy unit of work before deciding whether to retry.
The repository is unavailable because of an infrastructure failure.
Trait Implementations§
Source§impl Clone for RepositoryError
impl Clone for RepositoryError
Source§fn clone(&self) -> RepositoryError
fn clone(&self) -> RepositoryError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RepositoryError
impl Debug for RepositoryError
Source§impl Display for RepositoryError
impl Display for RepositoryError
impl Eq for RepositoryError
Source§impl Error for RepositoryError
impl Error for RepositoryError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<DomainError> for RepositoryError
impl From<DomainError> for RepositoryError
Source§fn from(error: DomainError) -> RepositoryError
fn from(error: DomainError) -> RepositoryError
Source§impl From<IdGenerationError> for RepositoryError
impl From<IdGenerationError> for RepositoryError
Source§fn from(error: IdGenerationError) -> RepositoryError
fn from(error: IdGenerationError) -> RepositoryError
Source§impl From<LifecycleError> for RepositoryError
impl From<LifecycleError> for RepositoryError
Source§fn from(error: LifecycleError) -> RepositoryError
fn from(error: LifecycleError) -> RepositoryError
Source§impl From<RepositoryError> for ExplorerError
impl From<RepositoryError> for ExplorerError
Source§fn from(value: RepositoryError) -> ExplorerError
fn from(value: RepositoryError) -> ExplorerError
Source§impl From<RepositoryError> for RetentionError
impl From<RepositoryError> for RetentionError
Source§fn from(value: RepositoryError) -> RetentionError
fn from(value: RepositoryError) -> RetentionError
Source§impl From<RepositoryError> for FlowRuntimeError
impl From<RepositoryError> for FlowRuntimeError
Source§fn from(error: RepositoryError) -> Self
fn from(error: RepositoryError) -> Self
Source§impl From<RepositoryError> for LaunchError
impl From<RepositoryError> for LaunchError
Source§fn from(error: RepositoryError) -> Self
fn from(error: RepositoryError) -> Self
Source§impl From<RepositoryError> for OperatorError
impl From<RepositoryError> for OperatorError
Source§fn from(value: RepositoryError) -> Self
fn from(value: RepositoryError) -> Self
Source§impl PartialEq for RepositoryError
impl PartialEq for RepositoryError
impl StructuralPartialEq for RepositoryError
Auto Trait Implementations§
impl Freeze for RepositoryError
impl RefUnwindSafe for RepositoryError
impl Send for RepositoryError
impl Sync for RepositoryError
impl Unpin for RepositoryError
impl UnsafeUnpin for RepositoryError
impl UnwindSafe for RepositoryError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more