Skip to content
DocumentationFailure model
On this page

Page resources

Open Markdownllms.txtView source

Last updated

Failure model

One preserves failure meaning across languages, protocols, providers, and interfaces. A generic error string is never allowed to collapse outcomes that require different user actions or recovery.

Semantic outcomes

OutcomeMeaningTypical response
SuccessThe operation's declared success value was producedContinue
Domain faultThe operation ran and returned a declared business outcomeHandle according to the domain contract
Rejected inputThe request did not satisfy its schema or preconditionsCorrect the request
ConflictCurrent semantic or resource state prevents the transitionRefresh, resolve, or choose another valid transition

Domain faults are part of the public operation. They are not platform defects and do not automatically trigger retries.

Authority and admission outcomes

OutcomeMeaningTypical response
DeniedPolicy rejected the exact requestChange scope or obtain appropriate approval
IndeterminatePolicy could not establish permissionDeny safely and repair policy evidence
Expired or revokedPrior authority is no longer validReauthorize under current policy
UntrustedRequired provenance, identity, admission, or assurance is absentSupply or establish accepted evidence

Authentication does not imply authorization. Approval does not imply a current grant. A grant does not prove enforcement succeeded.

Execution and communication outcomes

OutcomeMeaningTypical response
CancelledThe caller or owner requested that work stopInspect whether dispatch or cleanup occurred
Deadline exceededThe execution contract's time bound elapsedApply the operation's retry or reconciliation policy
Resource exhaustedA declared capacity, quota, credit, or budget was reachedShed, wait, scale, or replan
IncompatibleSelected schemas, protocols, targets, or versions cannot interoperateRebuild, remap, or replan
UnavailableThe selected realization cannot currently serveRetry or fail over only inside the admitted envelope
Outcome unknownDispatch may have happened, but exact outcome is not establishedReconcile before unsafe repetition

Cancellation and timeout describe the caller's knowledge, not necessarily the external world's state.

Composition and realization outcomes

OutcomeMeaningTypical response
UnsupportedNo declared contract or implementation path provides the requested semanticsAdd or select a real implementation
UnsatisfiedThe contract is supported, but no eligible realization meets this root's constraintsChange constraints, evidence, or provider availability
AmbiguousMore than one valid result exists where the contract requires one canonical answerAdd an explicit owner-valid preference
Missing evidenceA required record or proof cannot be resolvedRestore or reproduce the exact owning evidence
Stale evidenceEvidence exists but no longer meets freshness or epoch policyReobserve, revalidate, or reauthorize

One never substitutes a nearby digest, cached display value, installed package, or earlier-stage record to make these cases disappear.

Defects and external anomalies

A defect means an implementation, provider, tool, or One invariant was violated. A malformed provider response, impossible state transition, invalid receipt, corrupted artifact, and non-conforming codec are defects rather than domain faults.

Defects carry the responsible boundary, exact inputs, affected claim, safe disposition, and retained evidence. Sensitive values remain redacted. A later defect or revocation can trigger bounded impact analysis without rewriting the original history.

Aggregation does not erase partial failure

Workspace batches, composites, fan-out operations, pipelines, rollouts, and multi-provider routes retain per-member results. Aggregate policy may define quorum or success, but unsuccessful, skipped, unknown, and unavailable members remain inspectable.

Example

Illustrative code handles semantic and outer outcomes separately:

match result {
    Succeeded(value) => use_value(value),
    Rejected(fault) => correct_input(fault),
    Denied(denial) => request_access(denial),
    OutcomeUnknown(effect) => reconcile(effect),
    Failed(cause) => recover(cause),
}

See recovery and continuity for the operational response to unknown and partial outcomes, or follow Handle failures without flattening them.