Skip to main content

RepositoryError

Enum RepositoryError 

Source
#[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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

SchemaUninitialized

The durable metadata schema has not been initialized.

§

MigrationRequired

The durable metadata schema must be migrated before use.

Fields

§current: u32

The version found in the database.

§supported: u32

The version understood by this runtime.

§

NewerSchema

The durable metadata schema is newer than this runtime.

Fields

§current: u32

The version found in the database.

§supported: u32

The version understood by this runtime.

§

IdentifierOutOfRange

A facade identifier cannot be represented by the durable adapter.

Fields

§kind: IdentifierKind

The identifier category.

§value: u64

The rejected facade value.

§

JobInstanceNotFound

A referenced job instance does not exist.

Fields

§id: JobInstanceId

The missing identifier.

§

JobExecutionNotFound

A referenced job execution does not exist.

Fields

§id: JobExecutionId

The missing identifier.

§

StepExecutionNotFound

A referenced step execution does not exist.

Fields

§id: StepExecutionId

The missing identifier.

§

StepPartitionNotFound

A referenced durable step partition does not exist.

Fields

§id: StepPartitionId

The missing partition identifier.

§

EmptyPartitionPlan

A partition plan contained no work.

§

PartitionPlanTooLarge

A partition plan exceeded the accepted M4 bound.

Fields

§max: usize

Maximum accepted partition count.

§

DuplicatePartitionKey

A partition plan repeated a byte-exact key.

§

PartitionPlanExists

A durable plan already exists for the parent step execution.

Fields

§step_execution_id: StepExecutionId

Parent partitioned step execution.

§

PartitionPlanNotCommitted

Worker assignment was attempted before the new plan transaction committed.

Fields

§step_execution_id: StepExecutionId

Parent partitioned step execution.

§

PartitionUpdateNotAllowed

A partition update was not valid for its durable state.

Fields

§id: StepPartitionId

Rejected partition.

§status: BatchStatus

Status observed under compare-and-swap.

§

PartitionWorkerMismatch

The worker attempt does not belong to the partition parent’s job execution.

Fields

§partition_id: StepPartitionId

Rejected partition.

§worker_step_execution_id: StepExecutionId

Worker attempt from a different job execution.

§

PartitionWorkerAlreadyAssigned

A worker attempt is already bound to another durable partition.

Fields

§worker_step_execution_id: StepExecutionId

Reused worker attempt.

§

PartitionWorkerStale

A completion did not name the currently assigned worker attempt.

Fields

§partition_id: StepPartitionId

Rejected partition.

§worker_step_execution_id: StepExecutionId

Worker expected by the caller.

§

PartitionParentNotActive

The partition manager is no longer active and cannot mutate children.

Fields

§step_execution_id: StepExecutionId

Parent partitioned step execution.

§status: BatchStatus

Current parent lifecycle status.

§

PartitionAggregationIncomplete

At least one durable child has not published a runtime-terminal result.

Fields

§step_execution_id: StepExecutionId

Parent partitioned step execution.

§status: BatchStatus

Child 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: IdentifierKind

The duplicated identifier category.

§value: u64

The duplicated numeric value.

§

CompletedInstance

A completed logical instance cannot be launched again.

Fields

§id: JobInstanceId

The terminal logical instance.

§

AbandonedInstance

An abandoned logical instance cannot be launched again.

Fields

§id: JobInstanceId

The terminal logical instance.

§

ExecutionAlreadyActive

A prior attempt is active or requires explicit recovery.

Fields

§instance_id: JobInstanceId

The logical instance selected for launch.

§execution_id: JobExecutionId

The attempt preventing another launch.

§status: BatchStatus

Its current framework status.

§

DefinitionDrift

One job name and revision were bound to a different manifest.

Fields

§job_name: JobName

Definition whose application revision drifted.

§revision: DefinitionRevision

Reused application-owned revision.

§

DefinitionJobMismatch

A manifest was registered or launched under a different job name.

Fields

§expected: JobName

Job name selected by the instance or registration call.

§actual: JobName

Job name encoded in the definition manifest.

§

IncompatibleDefinition

The proposed definition cannot interpret the latest checkpoint.

Fields

§instance_id: JobInstanceId

Logical instance whose last definition is incompatible.

§

UnsupportedManifestVersion

The runtime cannot interpret the supplied or persisted manifest format.

Fields

§format: u16

Unsupported format version.

§

InvalidDefinitionUpgrade

A registered directed edge did not map a required durable step.

Fields

§execution_id: JobExecutionId

New execution whose mapped state could not be resolved.

§

DefinitionUpgradeConflict

A directed edge was already registered with different immutable content.

Fields

§job_name: JobName

Job whose edge conflicted.

§

RestartStateNotFound

A restartable definition required durable step state that was absent.

Fields

§execution_id: JobExecutionId

New restart execution.

§step_name: StepName

Target step whose source state was absent.

§

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: JobInstanceId

Logical instance whose historical starts were counted.

§node_id: NodeId

Stable logical step identifier.

§limit: StartLimit

Configured 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: JobExecutionId

Rejected execution.

§status: BatchStatus

Durable status observed under lock.

§

ExecutionOwned

A different process token is already recorded for the execution.

Fields

§id: JobExecutionId

Execution that remains owned by another process token.

§

ExecutionOwnershipNotAllowed

Ownership was requested outside the newly-created STARTING boundary.

Fields

§id: JobExecutionId

Execution that was not claimable.

§status: BatchStatus

Durable 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: RepositoryCapability

The 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.

§

Unavailable

The repository is unavailable because of an infrastructure failure.

Trait Implementations§

Source§

impl Clone for RepositoryError

Source§

fn clone(&self) -> RepositoryError

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RepositoryError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Display for RepositoryError

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Eq for RepositoryError

Source§

impl Error for RepositoryError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<DomainError> for RepositoryError

Source§

fn from(error: DomainError) -> RepositoryError

Converts to this type from the input type.
Source§

impl From<IdGenerationError> for RepositoryError

Source§

fn from(error: IdGenerationError) -> RepositoryError

Converts to this type from the input type.
Source§

impl From<LifecycleError> for RepositoryError

Source§

fn from(error: LifecycleError) -> RepositoryError

Converts to this type from the input type.
Source§

impl From<RepositoryError> for ExplorerError

Source§

fn from(value: RepositoryError) -> ExplorerError

Converts to this type from the input type.
Source§

impl From<RepositoryError> for RetentionError

Source§

fn from(value: RepositoryError) -> RetentionError

Converts to this type from the input type.
Source§

impl From<RepositoryError> for FlowRuntimeError

Source§

fn from(error: RepositoryError) -> Self

Converts to this type from the input type.
Source§

impl From<RepositoryError> for LaunchError

Source§

fn from(error: RepositoryError) -> Self

Converts to this type from the input type.
Source§

impl From<RepositoryError> for OperatorError

Source§

fn from(value: RepositoryError) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for RepositoryError

Source§

fn eq(&self, other: &RepositoryError) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for RepositoryError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more