#[non_exhaustive]pub enum ReplayError {
Show 13 variants
HeaderIncompatible(String),
KernelSemverMismatch {
expected: (u16, u16, u16),
got: (u16, u16, u16),
},
AbiVersionMismatch {
expected: (u16, u16),
got: (u16, u16),
},
PostcardVersionMismatch {
expected: u32,
got: u32,
},
Blake3VersionMismatch {
expected: u32,
got: u32,
},
WalCorrupted(WalError),
SubmitFailed(String),
StepUnderflow {
instance: InstanceId,
},
PoppedIdDivergence {
seq: u64,
},
VerdictDivergence {
seq: u64,
expected: StepVerdict,
got: StepVerdict,
},
StateDigestDivergence {
seq: u64,
},
ChainTipDivergence {
expected: [u8; 32],
measured: [u8; 32],
},
ManifestDigestMismatch {
expected: [u8; 32],
got: [u8; 32],
},
}Expand description
Failure modes for replay_into.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
HeaderIncompatible(String)
WAL header magic doesn’t match WalHeader::MAGIC.
KernelSemverMismatch
kernel_semver differs between WAL header and the running kernel.
Fields
AbiVersionMismatch
abi_version differs between WAL header and the running kernel.
Fields
PostcardVersionMismatch
postcard_version differs between WAL header and the running build.
Fields
Blake3VersionMismatch
blake3_version differs between WAL header and the running build.
WalCorrupted(WalError)
Underlying WAL chain/signature verification failure.
SubmitFailed(String)
Kernel::submit_with_id failed during replay (carries the formatted
upstream error).
StepUnderflow
A Step record was reached but the instance had no due action to pop
— the re-derived scheduler diverged from the recorded history.
Fields
instance: InstanceIdInstance the absent step targeted.
PoppedIdDivergence
A re-executed step popped a different ScheduledActionId than recorded
— the re-derived scheduler order diverged.
VerdictDivergence
A re-executed step reached a different verdict than recorded — the re-derived authorization/budget outcome diverged.
Fields
expected: StepVerdictVerdict pinned in the WAL.
got: StepVerdictVerdict re-derived on replay.
StateDigestDivergence
A re-executed step produced a different full-state digest than recorded — the re-derived state diverged bit-for-bit (A1 failure).
ChainTipDivergence
The chain tip re-measured from the replayed records does not equal the sealed WAL’s tip — the replay was not bit-identical end-to-end.
Fields
ManifestDigestMismatch
The WAL header’s manifest_digest does not equal the replaying
kernel’s declared manifest (A14) — the WAL was written under a
different ModuleManifest. Closes the otherwise-vacuous default-path
manifest gate without requiring a TrustAnchor.
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()