Skip to main content

BrazeApiError

Enum BrazeApiError 

Source
pub enum BrazeApiError {
    Http {
        status: StatusCode,
        body: String,
    },
    Network(Error),
    Unauthorized,
    NotFound {
        resource: String,
    },
    RateLimitExhausted,
    PaginationNotImplemented {
        endpoint: &'static str,
        detail: String,
    },
    UnexpectedApiMessage {
        endpoint: &'static str,
        message: String,
    },
    DuplicateNameInListResponse {
        endpoint: &'static str,
        name: String,
    },
}

Variants§

§

Http

Non-success HTTP status that wasn’t already mapped to a typed variant below. Carries the body so users have something to grep.

Fields

§status: StatusCode
§body: String
§

Network(Error)

Network / decode errors from reqwest. Includes JSON parse errors (reqwest::Error::is_decode) — the message will say so.

§

Unauthorized

401 from Braze. Almost always a wrong / missing API key.

§

NotFound

404 mapped from a get-by-name endpoint. Generic Http {404} from a list endpoint stays as Http; this variant is reserved for the “this specific resource doesn’t exist” case so callers can branch on it without string matching.

Fields

§resource: String
§

RateLimitExhausted

MAX_RETRIES of 429 in a row. The caller should slow down (or raise the configured rate limit) rather than just retrying again.

§

PaginationNotImplemented

A list endpoint returned a truncated page and v0.2.0 does not yet implement pagination. Returned instead of silently dropping the missing results, because for content blocks that drop would let apply create duplicates of blocks living on page 2+ (and --archive-orphans would miss them entirely).

Fields

§endpoint: &'static str
§detail: String
§

UnexpectedApiMessage

Braze returned HTTP 200 with a non-success message field that does not match any known not-found phrase. Surfaced verbatim so an unexpected server-side failure is loud instead of being silently misclassified as NotFound — the wire shapes in v0.2.0 are ASSUMED per IMPLEMENTATION.md §8.3, so any unrecognised status message is exactly the signal the operator needs to see.

Fields

§endpoint: &'static str
§message: String
§

DuplicateNameInListResponse

A list endpoint returned two entries sharing the same name. Braze is expected to enforce name uniqueness for named resources (content blocks, email templates), so this is a contract violation rather than an operator-fixable condition. We surface it loudly because the diff/apply path indexes by name — silently keeping only one of a duplicate pair would hide a resource from every subsequent list/update/archive operation.

Fields

§endpoint: &'static str
§name: String

Trait Implementations§

Source§

impl Debug for BrazeApiError

Source§

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

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

impl Display for BrazeApiError

Source§

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

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

impl Error for BrazeApiError

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<BrazeApiError> for Error

Source§

fn from(source: BrazeApiError) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for BrazeApiError

Source§

fn from(source: Error) -> 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> 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