pub enum ReplayError {
Divergence {
position: SequenceNumber,
recorded: Box<LoggedStep>,
requested: Box<RequestedStep>,
},
NeedsReconciliation {
position: SequenceNumber,
tool: String,
input: Value,
idempotency_key: Option<String>,
},
MalformedLog {
position: SequenceNumber,
detail: String,
},
}Expand description
Why replay could not continue.
Variants§
Divergence
Orchestration produced a step that does not match the recorded event at this position. Replay assumes deterministic orchestration; this error is that assumption failing loudly instead of silently resuming a different run than the one recorded.
Fields
position: SequenceNumberThe log position where the mismatch occurred. For a request made after the recorded run already ended, this is the position the extra step would have occupied.
recorded: Box<LoggedStep>What the log holds at that position. Boxed to keep the error type small on the happy path; it carries a full event.
requested: Box<RequestedStep>What orchestration produced instead. Boxed for the same reason.
NeedsReconciliation
The log records a Effect::Write intent with no completion. The
write may or may not have reached the provider, so the runtime refuses
to guess: no retry, no re-execution, a human resolves it. The recorded
intent is carried in full as the evidence that human needs.
Fields
position: SequenceNumberThe log position of the dangling write intent.
MalformedLog
The log itself is not a well-formed run history (non-contiguous positions, mixed run ids, a completion that does not follow its intent, events after a terminal event). This is storage corruption or a writer bug, not orchestration divergence.
Fields
position: SequenceNumberThe log position where the malformation was noticed.
Trait Implementations§
Source§impl Clone for ReplayError
impl Clone for ReplayError
Source§fn clone(&self) -> ReplayError
fn clone(&self) -> ReplayError
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 ReplayError
impl Debug for ReplayError
Source§impl Display for ReplayError
impl Display for ReplayError
Source§impl Error for ReplayError
impl Error for ReplayError
1.30.0 · 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()