Skip to main content

SessionError

Enum SessionError 

Source
pub enum SessionError {
    Io(Error),
    Serde(Error),
    Db(SqlxError),
    NotFound(String),
    InvalidForkPoint(String),
    CondensationOverlap(String),
    Llm(LlmError),
    AlreadyLocked {
        path: String,
        pid: Option<u32>,
        pid_alive: Option<bool>,
    },
    InvalidBlobHash(String),
    Integrity(String),
}
Expand description

Errors produced by the session persistence, replay, and fork engines.

Variants§

§

Io(Error)

Filesystem I/O failed while reading or appending to an event log.

§

Serde(Error)

A SessionEvent line failed to (de)serialize.

§

Db(SqlxError)

The acp_sessions metadata store returned a database error.

§

NotFound(String)

A lookup by zeph_common::SessionId found no matching session.

§

InvalidForkPoint(String)

A fork was requested at a seq beyond the source session’s last_seq.

§

CondensationOverlap(String)

A condensation or compaction range overlapped a previously replaced range (INV-SP-4).

§

Llm(LlmError)

Condensation summarization failed (LLM call error or timeout).

§

AlreadyLocked

crate::log::SessionEventLog::open_exclusive found another process already holding the session’s advisory write lock.

Fields

§path: String

Path to the contended lock file.

§pid: Option<u32>

PID of the process holding the lock, read back from the lock file’s contents at contention time. None if the file was empty or its contents could not be parsed as a PID (e.g. the lock was acquired by a build predating PID recording).

§pid_alive: Option<bool>

Whether pid was confirmed still running via a liveness check (kill(pid, 0)) at contention time. None if pid is None, or on non-Unix targets where no liveness check runs.

§

InvalidBlobHash(String)

A UserMessage.image_refs entry was not a bare hex string, so it was rejected before being joined into a filesystem path (#5982 follow-up, path-traversal guard).

§

Integrity(String)

A session event log’s hash chain failed to verify (issue #6360): a definite tamper verdict, a partial strip of chain metadata, an unverifiable/possibly-re-keyed chain, an internal (non-trailing) malformed line masquerading as a torn crash-recovery tail, or a chained log read with no history-integrity key configured. Distinct from SessionError::Serde (JSON-syntax errors) because a chain break always escalates to a hard failure and — critically — must be detected and reported before any torn-tail repair runs, so a mid-file tamper is never silently auto-truncated away as ordinary crash recovery (S1).

Trait Implementations§

Source§

impl Debug for SessionError

Source§

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

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

impl Display for SessionError

Source§

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

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

impl Error for SessionError

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<Error> for SessionError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for SessionError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for SessionError

Source§

fn from(source: SqlxError) -> Self

Converts to this type from the input type.
Source§

impl From<LlmError> for SessionError

Source§

fn from(source: LlmError) -> Self

Converts to this type from the input type.

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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