pub enum ProxyError {
Config(String),
NoRoute(String),
NoUpstream(String),
}Expand description
Errors that can occur during proxy operation.
use praxis_core::ProxyError;
let e = ProxyError::Config("bad yaml".into());
assert_eq!(e.to_string(), "config: bad yaml");
let e = ProxyError::NoRoute("GET /missing".into());
assert_eq!(e.to_string(), "no route for GET /missing");
let e = ProxyError::NoUpstream("backend".into());
assert_eq!(e.to_string(), "no upstream in cluster 'backend'");Variants§
Config(String)
Configuration loading or validation error.
Raised during startup or hot-reload when YAML parsing or validation fails. Not retriable; fix the configuration. The server continues running with the previous config on hot-reload failures.
NoRoute(String)
No route matched the incoming request.
Raised during request routing when no filter chain’s router matches the method, path, and headers. Returns 404 to the client. Not retriable for the same request.
NoUpstream(String)
No upstream available in the given cluster.
Raised when a route matched but all endpoints in the target cluster are unhealthy or the cluster is empty. Returns 503 to the client. Retriable after health checks recover an endpoint.
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
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
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
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for ProxyError
impl RefUnwindSafe for ProxyError
impl Send for ProxyError
impl Sync for ProxyError
impl Unpin for ProxyError
impl UnsafeUnpin for ProxyError
impl UnwindSafe for ProxyError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more