Skip to main content

RuntimeError

Enum RuntimeError 

Source
pub enum RuntimeError {
Show 28 variants Storage(StorageError), Sqlite(SqliteError), Query(QueryError), NotFound(String), InvalidInput(String), Unconfigured(String), UnknownModel(String), Embedding(EmbedError), Ambiguous(String), Fusion(FuseError), Internal(String), MissingPackDependency(MissingPackDependency), MissingPackDependencies(MissingPackDependencies), CircularPackDependency(CircularPackDependency), PackRedeclared { name: String, first_idx: usize, second_idx: usize, }, VerbCollision { verb: String, first_pack: String, second_pack: String, }, PermissionDenied { verb: String, reason: String, }, Khive(KhiveError), NamespaceMismatch { id: Uuid, }, AmbiguousPrefix { prefix: String, matches: Vec<Uuid>, }, CrossBackendMergeUnsupported { into_id: Uuid, from_id: Uuid, into_backend: String, from_backend: String, }, UnknownRemote { name: String, }, RemoteCacheMissing { remote: String, namespace: String, }, AmbiguousId { id: String, count: usize, }, CrossNamespaceWrite { namespace: String, }, RemoteFetchError { remote: String, message: String, }, WriteBudgetExceeded { max_new_entries: u64, attempted_new_entries: u64, }, SecretDetected(SecretMatch),
}
Expand description

All errors produced by the khive-runtime layer.

Variants cover storage, query, validation, namespace isolation, and permission failures. Callers should match on InvalidInput for bad arguments, NotFound for missing records, and NamespaceMismatch (reported as not-found) for cross-namespace access attempts.

Variants§

§

Storage(StorageError)

§

Sqlite(SqliteError)

§

Query(QueryError)

§

NotFound(String)

§

InvalidInput(String)

§

Unconfigured(String)

§

UnknownModel(String)

§

Embedding(EmbedError)

§

Ambiguous(String)

§

Fusion(FuseError)

§

Internal(String)

§

MissingPackDependency(MissingPackDependency)

§

MissingPackDependencies(MissingPackDependencies)

§

CircularPackDependency(CircularPackDependency)

§

PackRedeclared

Fields

§name: String
§first_idx: usize
§second_idx: usize
§

VerbCollision

Two packs declared the same Visibility::Verb handler name. Visibility::Subhandler entries are pack-prefixed and do not participate in cross-pack collision checks.

Fields

§verb: String
§first_pack: String
§second_pack: String
§

PermissionDenied

Gate denied this verb invocation.

Returned by VerbRegistry::dispatch when the configured Gate returns GateDecision::Deny. The pack is never invoked. The reason field carries the deny message produced by the gate implementation.

Fields

§verb: String
§reason: String
§

Khive(KhiveError)

A structured khive_types::KhiveError converted into the runtime layer. The full structured error is preserved so callers can inspect kind, code, details, and retry_hint without information loss.

§

NamespaceMismatch

Record exists but belongs to a different namespace than the provided token.

Externally reported as “not found in this namespace” to avoid leaking cross-namespace existence information (timing-oracle mitigation).

Fields

§id: Uuid
§

AmbiguousPrefix

A short-prefix lookup matched more than one record.

prefix is the 8+ hex-char prefix supplied by the caller. matches holds the full UUIDs of all matching records (at most 2 are reported to bound the scan — callers must supply the full UUID to disambiguate).

Fields

§prefix: String
§matches: Vec<Uuid>
§

CrossBackendMergeUnsupported

Cross-backend merge_entity is unsupported in v1.

Both entities must reside on the same backend. To merge entities on different backends, manually export from_id, delete it, and re-import on into_id’s backend.

Fields

§into_id: Uuid
§from_id: Uuid
§into_backend: String
§from_backend: String
§

UnknownRemote

A kg:// ref names a remote not declared in schema.yaml.

Fields

§name: String
§

RemoteCacheMissing

A remote cache entry is absent and --fetch was not requested.

Fields

§remote: String
§namespace: String
§

AmbiguousId

A short ID matches multiple entities in the same namespace or remote cache.

Fields

§count: usize
§

CrossNamespaceWrite

A write operation targeted a remote namespace, which is read-only.

Fields

§namespace: String
§

RemoteFetchError

A remote fetch failed (network error, authentication failure, etc.).

Fields

§remote: String
§message: String
§

WriteBudgetExceeded

A caller-supplied write budget was exceeded during a Compound apply.

max_new_entries is the limit passed by the caller. attempted_new_entries is consumed + 1, i.e. the create that would have exceeded the cap. None budget never produces this error (unlimited path).

Fields

§max_new_entries: u64
§attempted_new_entries: u64
§

SecretDetected(SecretMatch)

Write blocked: content matches a secret pattern.

The SecretMatch carries the detector name and a masked excerpt (first6...Nchars). The full candidate is never stored in the error. Store a pointer (env-var name, keychain item) rather than the raw value.

Trait Implementations§

Source§

impl Debug for RuntimeError

Source§

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

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

impl Display for RuntimeError

Source§

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

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

impl Error for RuntimeError

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<EmbedError> for RuntimeError

Source§

fn from(source: EmbedError) -> Self

Converts to this type from the input type.
Source§

impl From<FuseError> for RuntimeError

Source§

fn from(source: FuseError) -> Self

Converts to this type from the input type.
Source§

impl From<KhiveError> for RuntimeError

Source§

fn from(e: KhiveError) -> Self

Converts to this type from the input type.
Source§

impl From<QueryError> for RuntimeError

Source§

fn from(source: QueryError) -> Self

Converts to this type from the input type.
Source§

impl From<SqliteError> for RuntimeError

Source§

fn from(source: SqliteError) -> Self

Converts to this type from the input type.
Source§

impl From<StorageError> for RuntimeError

Source§

fn from(source: StorageError) -> 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> 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