#[non_exhaustive]pub enum ActionError {
AuthorizationFailed(&'static str),
IdempotencyConflict([u8; 16]),
CapabilityDenied(&'static str),
SchemaMismatch {
expected: u16,
got: u16,
},
CrossShellActivity,
GdprPolicyViolation,
IdExhaustion,
InvalidInput(&'static str),
UserErasurePending {
user: UserId,
scheduled_tick: Tick,
},
EntityShellIdReassign {
entity: EntityId,
old_shell: ShellId,
new_shell: ShellId,
},
ActorHandleCollision {
shell_id: ShellId,
handle: BoundedString<32>,
},
}Expand description
Taxonomy of compute-time rejections. ActionCompute::compute returns
Result<(), ActionError>; the pipeline converts these to rejection
records while preserving deterministic bytes (no panicking paths).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
AuthorizationFailed(&'static str)
Authorization gate rejected the caller (L2 capability missing or principal unsuitable for the Action).
IdempotencyConflict([u8; 16])
Idempotency-key collision — the key hit a prior record.
CapabilityDenied(&'static str)
A capability bit was absent from the caller’s mask.
SchemaMismatch
Schema-version mismatch (wire version does not match a runtime decoder).
CrossShellActivity
Replay / admin path detected a cross-shell activity (E-act-2 RA).
GdprPolicyViolation
User has ErasurePending GDPR status; actor-originated Actions are
blocked until the cascade completes (C3 contract).
IdExhaustion
derive_entity_id exhausted its retry bound.
InvalidInput(&'static str)
Action input failed a compute-path validator (KDF params, depth cap, etc.).
UserErasurePending
E-user-3 C3 — actor’s backing user is in GdprStatus::ErasurePending,
so any actor-originated Action is blocked until the cascade finalises.
Fields
EntityShellIdReassign
E-act-7 — an Action attempted to overwrite an entity’s existing
EntityShellId with a different shell. The runtime refuses the
reassignment to defend against type-erased-id brand bypass (spec
E-act-2 Extension MC).
Fields
ActorHandleCollision
E-actor-3 — (shell_id, handle) is already held by another Actor.
Spawning or renaming with a colliding handle is rejected (spec
E-actor-3 invariant).
Trait Implementations§
Source§impl Debug for ActionError
impl Debug for ActionError
Source§impl Display for ActionError
impl Display for ActionError
Source§impl Error for ActionError
impl Error for ActionError
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()