pub enum OrchestrationError {
Show 16 variants
Disabled,
PlanningFailed(String),
InvalidGraph(String),
CycleDetected,
TaskNotFound(String),
NoAgentAvailable(String),
GraphNotFound(String),
Scheduler(String),
AggregationFailed(String),
Persistence(String),
TaskTimeout(String),
Canceled,
InvalidCommand(String),
VerificationFailed(String),
InvalidConfig(String),
SubAgent(SubAgentError),
}Expand description
All error variants produced by the orchestration subsystem.
Variants are exhaustive — callers that match on this type should use a
_ => … arm to stay robust against future additions.
§Fail-open policy
LLM-backed steps (verification, replan) are always fail-open: on failure
they log a warning and continue rather than returning an error. Only
structural invariant violations and hard configuration errors propagate as
Err.
§Examples
use zeph_orchestration::OrchestrationError;
fn describe(err: &OrchestrationError) -> &'static str {
match err {
OrchestrationError::CycleDetected => "graph has a cycle",
OrchestrationError::Disabled => "orchestration is off",
_ => "other orchestration error",
}
}
let err = OrchestrationError::CycleDetected;
assert_eq!(describe(&err), "graph has a cycle");Variants§
Disabled
Orchestration is disabled in configuration.
PlanningFailed(String)
The LLM planner failed to produce a valid task graph.
InvalidGraph(String)
The task graph structure is invalid (e.g. wrong task-id invariant, bad reference).
CycleDetected
A cycle was detected during topological sort of the task graph.
TaskNotFound(String)
A TaskId or task title lookup yielded no result.
NoAgentAvailable(String)
No agent in the available pool can be routed to a task.
GraphNotFound(String)
A GraphId could not be found in persistence.
Scheduler(String)
An internal scheduler invariant was violated.
AggregationFailed(String)
Result aggregation failed and the fallback path also failed.
Persistence(String)
A database read/write or serialization error in graph persistence.
TaskTimeout(String)
A task exceeded its per-task wall-clock timeout.
Canceled
The scheduler or a task was canceled by the caller.
InvalidCommand(String)
A /plan CLI command could not be parsed.
VerificationFailed(String)
Hard invariant violation during verification (e.g. cycle detected after inject_tasks).
Never used for LLM call failures — those are fail-open and only log a warning.
InvalidConfig(String)
A required configuration value is missing or out of range.
SubAgent(SubAgentError)
Propagated error from a sub-agent execution.
Trait Implementations§
Source§impl Debug for OrchestrationError
impl Debug for OrchestrationError
Source§impl Display for OrchestrationError
impl Display for OrchestrationError
Source§impl Error for OrchestrationError
impl Error for OrchestrationError
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()
Source§impl From<SubAgentError> for OrchestrationError
impl From<SubAgentError> for OrchestrationError
Source§fn from(source: SubAgentError) -> Self
fn from(source: SubAgentError) -> Self
Auto Trait Implementations§
impl Freeze for OrchestrationError
impl RefUnwindSafe for OrchestrationError
impl Send for OrchestrationError
impl Sync for OrchestrationError
impl Unpin for OrchestrationError
impl UnsafeUnpin for OrchestrationError
impl UnwindSafe for OrchestrationError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.