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
Sourcepub fn is_fail_open_eligible(&self) -> bool
pub fn is_fail_open_eligible(&self) -> bool
Whether this error should trigger fail-open (return a synthetic success
response). Currently identical to [is_retryable]; maintained as a
separate method because future policy changes may diverge them (e.g.
ConfigError could be fail-open-eligible but not retryable).
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()