pub enum AppErrorKind {
Show 14 variants
Unauthorized,
BadRequest,
NotFound,
Conflict,
Internal,
PayloadTooLarge,
UnsupportedMediaType,
MethodNotAllowed,
ServiceUnavailable,
FormationCycle,
FormationMultipleCoordinators,
FormationNoCoordinator,
FormationAuthorityNotNarrowing,
FormationDuplicateMemberId,
}Expand description
Stable error identifier. Adding a variant is a non-breaking change;
renaming one IS breaking (clients pin on type).
Variants§
BadRequest
NotFound
Conflict
Internal
PayloadTooLarge
FUZZ-WAVE-1 MED-1: axum’s built-in extractors (Json, Path, Query)
reject malformed input with text/plain. We catch those rejections
in the response-mapping middleware and re-emit them as
problem+json under these stable type URIs.
UnsupportedMediaType
MethodNotAllowed
FUZZ-CRIT-1: the upstream event store (JetStream/NATS) is
unreachable or timing out. Distinct from Internal because the
HTTP control plane itself is healthy — only the data tier behind
/v1/events is degraded.
FormationCycle
Discriminants from ADR-0010 §Enforcement: cellos-server admission
gate rejection reasons. Surfaced via application/problem+json
so cellctl can switch on type without parsing detail.
FormationMultipleCoordinators
FormationNoCoordinator
FormationAuthorityNotNarrowing
FormationDuplicateMemberId
FUZZ-MED-4: distinct discriminant for duplicate members[*].id.
Historically the duplicate-id case rode on multiple-coordinators
because the ADR-0010 §Consequences narrative (“two members both
named coord”) used the same scenario. Operators reading the
problem-type couldn’t distinguish “your manifest declares two
coordinators” (a structural design error) from “your manifest
declares two members with the same id” (a typo). Both still
400; clients pinning on the old type continue to see 400 + the
authority-not-narrowing/cycle chain when applicable. New clients
can switch on this discriminant to render a typo-specific hint.
Implementations§
Source§impl AppErrorKind
impl AppErrorKind
Trait Implementations§
Source§impl Clone for AppErrorKind
impl Clone for AppErrorKind
Source§fn clone(&self) -> AppErrorKind
fn clone(&self) -> AppErrorKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more