LettaError

Enum LettaError 

Source
pub enum LettaError {
Show 13 variants Http(Error), Auth { message: String, }, Api { status: u16, message: String, code: Option<String>, body: ErrorBody, url: Option<Url>, method: Option<String>, }, Serde(Error), Streaming { message: String, source: Option<Box<dyn Error + Send + Sync>>, }, Config { message: String, }, Url(ParseError), Io(Error), UrlEncoding(Error), RequestTimeout { seconds: u64, }, RateLimit { retry_after: Option<u64>, }, NotFound { resource_type: String, id: String, }, Validation { message: String, field: Option<String>, },
}
Expand description

Comprehensive error type for all Letta client operations.

This error type provides detailed context about failures and implements miette::Diagnostic for rich error reporting with suggestions and source code highlighting where applicable.

Variants§

§

Http(Error)

HTTP request failed.

§

Auth

Authentication failed.

Fields

§message: String

Detailed authentication error message.

§

Api

API returned an error response.

Fields

§status: u16

HTTP status code.

§message: String

Error message from the API.

§code: Option<String>

Optional error code from the API.

§body: ErrorBody

Structured error response body.

§url: Option<Url>

Request URL that failed.

§method: Option<String>

Request method that failed.

§

Serde(Error)

JSON serialization/deserialization failed.

§

Streaming

Streaming operation failed.

Fields

§message: String

Detailed streaming error message.

§source: Option<Box<dyn Error + Send + Sync>>

Source error if available.

§

Config

Client configuration error.

Fields

§message: String

Configuration error message.

§

Url(ParseError)

URL parsing error.

§

Io(Error)

I/O operation failed.

§

UrlEncoding(Error)

URL encoding error.

§

RequestTimeout

Request timeout.

Fields

§seconds: u64

Timeout duration in seconds.

§

RateLimit

Rate limit exceeded.

Fields

§retry_after: Option<u64>

Seconds to wait before retrying.

§

NotFound

Resource not found.

Fields

§resource_type: String

Type of resource that was not found.

§id: String

ID of the resource.

§

Validation

Validation error for request parameters.

Fields

§message: String

Validation error message.

§field: Option<String>

Field that failed validation, if applicable.

Implementations§

Source§

impl LettaError

Source

pub fn auth(message: impl Into<String>) -> Self

Create a new authentication error.

Source

pub fn api(status: u16, message: impl Into<String>) -> Self

Create a new API error.

Source

pub fn api_with_code( status: u16, message: impl Into<String>, code: impl Into<String>, ) -> Self

Create a new API error with error code.

Source

pub fn from_response(status: u16, body_str: String) -> Self

Create a new API error from response body. Automatically parses and structures the error body and maps to specific error types.

Source

pub fn from_response_with_headers( status: u16, body_str: String, headers: Option<&HeaderMap>, ) -> Self

Create a new API error from response body with optional headers. Automatically parses and structures the error body and maps to specific error types.

Source

pub fn from_response_with_context( status: u16, body_str: String, headers: Option<&HeaderMap>, url: Option<Url>, method: Option<String>, ) -> Self

Create a new API error from response body with full context. Automatically parses and structures the error body and maps to specific error types.

Source

pub fn api_with_body( status: u16, message: impl Into<String>, body: ErrorBody, ) -> Self

Create a new API error with specific error body.

Source

pub fn streaming(message: impl Into<String>) -> Self

Create a new streaming error.

Source

pub fn streaming_with_source( message: impl Into<String>, source: impl Into<Box<dyn Error + Send + Sync>>, ) -> Self

Create a new streaming error with source.

Source

pub fn config(message: impl Into<String>) -> Self

Create a new configuration error.

Source

pub fn not_found( resource_type: impl Into<String>, id: impl Into<String>, ) -> Self

Create a new not found error.

Source

pub fn validation(message: impl Into<String>) -> Self

Create a new validation error.

Source

pub fn validation_field( message: impl Into<String>, field: impl Into<String>, ) -> Self

Create a new validation error for a specific field.

Source

pub fn request_timeout(seconds: u64) -> Self

Create a new request timeout error.

Source

pub fn rate_limit(retry_after: Option<u64>) -> Self

Create a new rate limit error.

Source

pub fn is_retryable(&self) -> bool

Check if this error is retryable.

Source

pub fn status_code(&self) -> Option<u16>

Get the HTTP status code if this is an API error.

Source

pub fn response_body(&self) -> Option<&ErrorBody>

Get the structured response body if this is an API error.

Source

pub fn error_code(&self) -> Option<&str>

Get the error code if this is an API error.

Source

pub fn is_unauthorized(&self) -> bool

Check if this is a specific type of API error.

Source

pub fn is_validation_error(&self) -> bool

Check if this is a validation error.

Source

pub fn unauthorized_details(&self) -> Option<(&str, &str, &str)>

Get the unauthorized error details if this is an unauthorized error.

Trait Implementations§

Source§

impl Debug for LettaError

Source§

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

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

impl Diagnostic for LettaError

Source§

fn code<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

Unique diagnostic code that can be used to look up more information about this Diagnostic. Ideally also globally unique, and documented in the toplevel crate’s documentation for easy searching. Rust path format (foo::bar::baz) is recommended, but more classic codes like E0123 or enums will work just fine.
Source§

fn help<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

Additional help text related to this Diagnostic. Do you have any advice for the poor soul who’s just run into this issue?
Source§

fn severity(&self) -> Option<Severity>

Diagnostic severity. This may be used by ReportHandlers to change the display format of this diagnostic. Read more
Source§

fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

URL to visit for a more detailed explanation/help about this Diagnostic.
Source§

fn source_code(&self) -> Option<&dyn SourceCode>

Source code to apply this Diagnostic’s Diagnostic::labels to.
Source§

fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>

Labels to apply to this Diagnostic’s Diagnostic::source_code
Source§

fn related<'a>( &'a self, ) -> Option<Box<dyn Iterator<Item = &'a dyn Diagnostic> + 'a>>

Additional related Diagnostics.
Source§

fn diagnostic_source(&self) -> Option<&dyn Diagnostic>

The cause of the error.
Source§

impl Display for LettaError

Source§

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

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

impl Error for LettaError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for LettaError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for LettaError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for LettaError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for LettaError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<ParseError> for LettaError

Source§

fn from(source: ParseError) -> Self

Converts to this type from the input type.
Source§

impl Retryable for LettaError

Source§

fn is_retryable(&self) -> bool

Check if the error should trigger a retry.
Source§

fn retry_after(&self) -> Option<Duration>

Get a custom retry delay if applicable (e.g., from Retry-After header).

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> 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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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
Source§

impl<T> ErasedDestructor for T
where T: 'static,