Skip to main content

LlmFailure

Struct LlmFailure 

Source
pub struct LlmFailure {
    pub reason: FailureReason,
    pub message: String,
    pub retryable: bool,
    pub status: Option<u16>,
    pub finish_reason: Option<String>,
    pub local: bool,
}
Expand description

The failure-arm payload of an LlmOutcome: everything that exists only when ok is false.

Held in an Option on the outcome rather than flattened into it, so the success arm cannot carry a message, a retryable, or a status — those fields are meaningless on a clean completion, and a flattened struct would have to invent values for them.

Fields§

§reason: FailureReason

The closed-set classification a guest branches on.

§message: String

The degraded error string.

This is the AI SDK’s rule that an error: unknown becomes an errorText: string at any serialization boundary — a guest cannot receive a Rust error object, so it receives this. The no-payload rule binds it absolutely: it is a classification, never an echo. No prompt, no completion fragment, and no provider response body may reach it; provider bodies carry request echoes and account identifiers, so they are dropped at this boundary. FailureReason::default_message supplies a safe one.

§retryable: bool

Whether re-dispatching the identical request could plausibly succeed. Defaulted from FailureReason::retryable_by_default and overridable per element, because a provider sometimes knows more than the class does.

§status: Option<u16>

The HTTP status, when one was observed. None is meaningful rather than missing: a transport death never got a status, which is exactly what distinguishes it from a provider that answered with an error.

§finish_reason: Option<String>

The provider’s own raw stop reason, verbatim, for diagnosis only.

Deliberately separate from Self::reason. reason is the closed set a guest branches on; this is an open string that varies per provider and per SDK version. Folding them together would either force the closed set to grow with every provider quirk or silently discard the detail that makes an unclassified stop diagnosable.

§local: bool

Refused by this host’s own configuration or network policy before the provider was reached, rather than answered by it. Not part of what a guest sees: the call log records such a failure as kind local, so a replay does not serve it.

Implementations§

Source§

impl LlmFailure

Source

pub fn new(reason: FailureReason, message: impl Into<String>) -> Self

A failure of this class carrying this classification message. retryable starts from the reason’s default; status and finish_reason start absent.

Source

pub fn retryable(self, retryable: bool) -> Self

Override the class default when the provider knows better.

Source

pub fn with_status(self, status: u16) -> Self

Record the observed HTTP status. Left absent when none was seen.

Source

pub fn refused_locally(self) -> Self

Mark the failure as this host’s own refusal; see Self::local.

Source

pub fn with_finish_reason(self, finish_reason: impl Into<String>) -> Self

Record the provider’s raw stop reason for diagnosis.

Trait Implementations§

Source§

impl Clone for LlmFailure

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LlmFailure

Source§

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

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

impl Eq for LlmFailure

Source§

impl PartialEq for LlmFailure

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for LlmFailure

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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