pub enum ProxyError {
Upstream(Error),
BadRequestBody,
BadRequest(String),
Engine(String),
NotFound(String),
Unauthorized,
Internal(String),
RateLimited,
}Expand description
Errors that can surface on the request path.
Variants§
Upstream(Error)
The upstream provider could not be reached, or returned something unusable (connection failure, timeout, decode error).
BadRequestBody
The inbound request body could not be read (e.g. the connection dropped mid-body).
BadRequest(String)
The request body was malformed for the target wire API (enforce mode parses it).
Engine(String)
The escalation engine could not serve any output (every rung errored).
NotFound(String)
A referenced resource does not exist (e.g. feedback for an unknown trace id).
Authentication failed: a missing or invalid tenant API key when require_auth is on
(ADR 0004 §D1). The body is intentionally opaque — no “unknown tenant” oracle.
Internal(String)
An internal failure (e.g. the trace store errored). Never leaks internals to the caller.
RateLimited
The tenant exceeded its configured request rate (ADR 0004 §D6). The body is intentionally opaque — no bucket state or limit value is disclosed.
Trait Implementations§
Source§impl Debug for ProxyError
impl Debug for ProxyError
Source§impl Display for ProxyError
impl Display for ProxyError
Source§impl Error for ProxyError
impl Error for ProxyError
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<Error> for ProxyError
impl From<Error> for ProxyError
Source§impl IntoResponse for ProxyError
impl IntoResponse for ProxyError
Source§fn into_response(self) -> Response
fn into_response(self) -> Response
Auto Trait Implementations§
impl !RefUnwindSafe for ProxyError
impl !UnwindSafe for ProxyError
impl Freeze for ProxyError
impl Send for ProxyError
impl Sync for ProxyError
impl Unpin for ProxyError
impl UnsafeUnpin for ProxyError
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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 more