pub enum AxonFlowError {
HttpError(Error),
SerdeError(Error),
ApiError {
status: u16,
message: String,
},
RateLimited {
envelope: Box<RateLimitEnvelope>,
},
ConfigError(String),
Unavailable(String),
ObligationNotFulfillable(String),
}Variants§
HttpError(Error)
SerdeError(Error)
ApiError
RateLimited
Tier-cap 429 with a parsed V1 upgrade envelope. Distinct from a
generic 429 ApiError because callers should branch on the upgrade
fields (tier / compare_url / buy_url) without re-parsing the
raw body. Mirrors the cross-SDK 429-with-envelope pattern
(#1982 / #1958). Boxed to keep AxonFlowError small —
RateLimitEnvelope is ~176 bytes and would dominate the enum
otherwise (clippy::result_large_err).
Fields
envelope: Box<RateLimitEnvelope>ConfigError(String)
ObligationNotFulfillable(String)
A Decision Mode redact_pii obligation could not be discharged through
the engine — it named no request-phase fulfillment, advertised a
content-type the PEP is not holding, named an endpoint this client will
not call, the engine call failed / returned non-200, or the engine
reported the redactor did not run (redaction_evaluated=false).
This is the fail-closed signal of the PEP contract (ADR-056, #2563): the caller MUST block, never forward the unredacted content. There is NO code path in which the SDK redacts locally — fulfillment is always the engine round-trip — so an obligation the engine cannot discharge fails closed here rather than leaking PII.
Implementations§
Source§impl AxonFlowError
impl AxonFlowError
pub fn is_retryable(&self) -> bool
pub fn is_fail_open_eligible(&self) -> bool
Trait Implementations§
Source§impl Debug for AxonFlowError
impl Debug for AxonFlowError
Source§impl Display for AxonFlowError
impl Display for AxonFlowError
Source§impl Error for AxonFlowError
impl Error for AxonFlowError
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()