Skip to main content

ObzError

Enum ObzError 

Source
pub enum ObzError {
    Provider {
        code: ErrorCode,
        message: String,
        raw_error: Option<String>,
        recoverable: bool,
        suggestion: Option<String>,
        doc_url: Option<String>,
    },
    Auth {
        code: ErrorCode,
        message: String,
        recoverable: bool,
        suggestion: Option<String>,
    },
    InvalidArgument {
        code: ErrorCode,
        message: String,
        suggestion: Option<String>,
    },
    Network {
        code: ErrorCode,
        message: String,
        recoverable: bool,
        source_chain: Option<Vec<String>>,
    },
    Unsupported {
        message: String,
        provider: Option<String>,
        suggestion: Option<String>,
    },
}
Expand description

The core error type for obz-core operations.

Uses thiserror for ergonomic error handling. Each variant carries enough information to produce a structured ErrorDetail for the response envelope.

Variants§

§

Provider

Provider returned an error.

Fields

§code: ErrorCode

Machine-readable error code.

§message: String

Human-readable message.

§raw_error: Option<String>

Raw backend error response.

§recoverable: bool

Whether a retry might succeed.

§suggestion: Option<String>

Suggested fix.

§doc_url: Option<String>

Documentation URL.

§

Auth

Authentication error.

Fields

§code: ErrorCode

Machine-readable error code.

§message: String

Human-readable message.

§recoverable: bool

Whether the caller can recover by retrying the same request.

Set true only when the underlying cause has already been resolved (e.g. credential-process refreshed expired credentials). All other auth errors should use false — downstream consumers (AI Agents) may auto-retry based on this flag.

§suggestion: Option<String>

Suggested fix.

§

InvalidArgument

Invalid CLI arguments.

Fields

§code: ErrorCode

Machine-readable error code.

§message: String

Human-readable message.

§suggestion: Option<String>

Suggested fix.

§

Network

Network error.

Fields

§code: ErrorCode

Machine-readable error code.

§message: String

Human-readable message.

§recoverable: bool

Whether a retry might succeed.

§source_chain: Option<Vec<String>>

Error source chain from the underlying library error.

§

Unsupported

Operation not supported by this provider.

Fields

§message: String

Human-readable message.

§provider: Option<String>

The provider that doesn’t support this operation.

§suggestion: Option<String>

Suggested fix.

Implementations§

Source§

impl ObzError

Source

pub fn to_error_detail(&self, provider: Option<&str>) -> ErrorDetail

Convert this error into a structured ErrorDetail for JSON output.

provider is injected into ErrorDetail.provider only when the variant does not already carry one (e.g. [Unsupported] sets its own provider, which takes precedence over the caller-supplied value).

Trait Implementations§

Source§

impl Debug for ObzError

Source§

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

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

impl Display for ObzError

Source§

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

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

impl Error for ObzError

1.30.0 · 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<ObzError> for ExecuteError

Source§

fn from(source: ObzError) -> Self

Converts to this type from the input type.

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, 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> 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, 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.