pub enum EmbedError {
Show 26 variants
MissingProtocolPlugin,
MissingModelSpec,
MissingEffectHost,
MissingAttachmentStore,
MissingProcessEnvStore,
StoreFactory {
session_id: String,
message: String,
},
StoreSessionMismatch {
loaded: String,
requested: String,
},
MissingProcessWorkerStoreFactory,
DurableStorePeerRequired {
facet: &'static str,
},
DurableProcessRegistryRequiresStoreFactory,
ProcessRegistryRequiresStoreFactory,
MissingProcessRegistry,
MissingSessionStoreFactory,
SessionDeleteProcess {
session_id: String,
message: String,
},
MissingPluginTurnInput {
plugin_id: &'static str,
},
SessionStillInUse,
TraceFlush(TraceSinkError),
DurableEffectHostRequiresHandlerContext {
operation: &'static str,
},
StaticTurnStreamRequiresStaticEffectHost,
Session(SessionError),
Runtime(RuntimeError),
Plugin(PluginError),
RemoteProtocol(RemoteProtocolError),
ProtocolTurnOptions(Error),
DecodeProtocolTurnOptions(ProtocolTurnOptionsError),
Control(PluginOperationInvokeError),
}Variants§
MissingProtocolPlugin
MissingModelSpec
MissingEffectHost
MissingAttachmentStore
MissingProcessEnvStore
StoreFactory
StoreSessionMismatch
MissingProcessWorkerStoreFactory
DurableStorePeerRequired
DurableProcessRegistryRequiresStoreFactory
ProcessRegistryRequiresStoreFactory
MissingProcessRegistry
MissingSessionStoreFactory
SessionDeleteProcess
MissingPluginTurnInput
SessionStillInUse
TraceFlush(TraceSinkError)
DurableEffectHostRequiresHandlerContext
StaticTurnStreamRequiresStaticEffectHost
Session(SessionError)
Runtime(RuntimeError)
Plugin(PluginError)
RemoteProtocol(RemoteProtocolError)
ProtocolTurnOptions(Error)
DecodeProtocolTurnOptions(ProtocolTurnOptionsError)
Control(PluginOperationInvokeError)
Implementations§
Source§impl EmbedError
impl EmbedError
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
True only when a typed signal says the failed operation is safe to
retry as-is; false means “no typed retryable signal”, not “known
permanent” (see is_terminal for that).
The retryable set is enumerated deliberately from
RuntimeErrorCode:
SessionExecutionBusy: another executor currently holds the session-execution lease; the turn was rejected before any state changed, so retrying after a backoff is safe.SessionExecutionLeaseLost: the lease was fenced away mid-turn. The final commit is fenced on the same lease, so the failed attempt committed nothing and its queued-work/turn-input claims were released; a fresh attempt can re-claim safely.
Everything else is false. Notably
StoreCommitFailed
stays false: the code does not distinguish transient store I/O from
conflicts, so there is no typed signal that a retry is safe.
Provider failures never surface as EmbedError — a failed LLM call
finishes the turn with TurnOutcome::Stopped(ProviderError) — so
their typed retryability is carried on
TurnIssue::retryable instead.
Sourcepub fn is_terminal(&self) -> bool
pub fn is_terminal(&self) -> bool
True only when a typed signal says retrying can never succeed without
host-side changes (wiring, configuration, or invariant violations that
a retry cannot repair). Errors that are neither
is_retryable nor terminal are simply unknown.
The terminal set:
- builder/wiring variants of this enum (missing protocol plugin, model spec, effect host, stores, registries, handler context, and store/session mismatches) — the same call fails identically until the host changes its wiring;
RuntimeErrorCodewiring codes:MissingExecutionScopeId,ExecutionScopeTurnIdMismatch,MissingProcessExecutionId,DurableStoreRequired,DurableEffectLiveProtocolExtension,DurableEffectLivePluginInput;- session provider-configuration errors (
ProviderMismatch,ProviderUnconfigured,ProviderUnavailable,CodeExecutionUnavailable).
Trait Implementations§
Source§impl Debug for EmbedError
impl Debug for EmbedError
Source§impl Display for EmbedError
impl Display for EmbedError
Source§impl Error for EmbedError
impl Error for EmbedError
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()