Skip to content

Error Model

The infra error model should explain repository-state failures clearly without pretending to own the product errors underneath them.

An infra error should answer three reader questions: which repository object is untrustworthy, why it is untrustworthy, and which owner must fix the underlying meaning if the problem is not infra-owned.

flowchart TD
    error["infra error"]
    object["repository object"]
    reason["specific failed contract"]
    owner["strongest owner"]
    message["diagnostic message"]

    error --> object
    error --> reason
    error --> owner
    object --> message
    reason --> message
    owner --> message

What The Model Owns

  • invalid dataset registry content
  • malformed sidecars or coordinate strings
  • run-layout persistence failures
  • override and sweep application failures
  • artifact inspection and repository-facing validation failures

What It Does Not Own

  • receiver runtime remediation
  • navigation-solver refusal logic
  • command wording and operator guidance
  • signal-level interpretation of raw samples after metadata has been resolved
  • core schema meaning after the serialized envelope has been validated

Why This Matters

Infrastructure failures should name repository-state problems precisely while leaving product-science errors to the crates that truly own them.

Message Rules

  • Name the repository object first: dataset entry, sidecar, run manifest, override, sweep spec, artifact, or validation input.
  • State the violated contract in reader language before naming source internals.
  • Route product-science refusal back to receiver, signal, navigation, or core.
  • Avoid generic "invalid input" wording when the persisted object is known.

Proof Path

Inspect coordinate parsing, dataset registry code, run-layout code, artifact-inspection code, and validation adapters. Use the infra contract guide to confirm the message names a repository-state failure rather than a lower-crate science failure.