Skip to content

Error Model

Navigation code has more than one honest failure mode. The architecture should keep them distinct.

Error Route

flowchart TD
    input["navigation input"]
    parse{"parseable?"}
    support{"supported contract?"}
    solve{"enough evidence<br/>to solve?"}
    integrity{"integrity clean?"}
    output["solution or<br/>explicit refusal"]

    input --> parse
    parse -- no --> output
    parse -- yes --> support
    support -- no --> output
    support -- yes --> solve
    solve -- no --> output
    solve -- yes --> integrity --> output

Failure Families

family meaning evidence standard
parse rejection external message or precise product cannot be interpreted include product family and rejected field context
unsupported contract input is well-formed but outside supported signal, product, constellation, or mode report unsupported boundary explicitly
solver refusal geometry, products, corrections, or observations do not justify a solution claim emit refusal class and prerequisite evidence
integrity suspicion data can be processed but should not be treated as clean preserve RAIM, residual, anomaly, or downgrade evidence
product-policy downgrade precise products are incomplete, stale, or below requested support report action and product support state
estimator degradation solution exists with degraded covariance, weighting, or lifecycle state expose quality and lifecycle evidence

Review Rules

  • Do not collapse parser rejection into solver refusal.
  • Do not treat downgraded precise products as malformed input.
  • Do not claim a solution when prerequisites are missing.
  • Preserve integrity evidence even when the final caller chooses to continue.
  • Keep command rendering and persisted run layout outside nav.

First Proof Check

Inspect crates/bijux-gnss-nav/src/formats/, crates/bijux-gnss-nav/src/estimation/position/solver/solution_outcome.rs, crates/bijux-gnss-nav/src/estimation/position/integrity/, crates/bijux-gnss-nav/src/estimation/solution_claims.rs, and crates/bijux-gnss-nav/docs/ESTIMATION.md.