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
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.
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.
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).
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).
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.
UnknownRemote
A kg:// ref names a remote not declared in schema.yaml.
RemoteCacheMissing
A remote cache entry is absent and --fetch was not requested.
AmbiguousId
A short ID matches multiple entities in the same namespace or remote cache.
CrossNamespaceWrite
A write operation targeted a remote namespace, which is read-only.
RemoteFetchError
A remote fetch failed (network error, authentication failure, etc.).
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).
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
impl Debug for RuntimeError
Source§impl Display for RuntimeError
impl Display for RuntimeError
Source§impl Error for RuntimeError
impl Error for RuntimeError
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()