Error Messages

Catalog of common error codes

When choochoo validate encounters issues, it produces specific error codes. Use this catalog to diagnose and fix problems. For the corresponding process exit codes, see Exit Codes.

CodeMessage TemplateTroubleshooting
E001Invalid schema: {details}Check your YAML syntax and required fields against the schema definitions.
E002Missing required field: {field}Add the missing field to your artifact. See Products, Contracts, or Workflows for required fields.
E003Invalid file extensionEnsure files use the correct suffix (e.g., .contract.yaml). See File Structure for naming conventions.
E004Contract not found: {id}The referenced contract ID does not exist in contracts/. Check your project structure and ensure the contract file exists.
E005Circular dependency detectedYou have a dependency loop (A → B → A). Break the cycle. Use choochoo lineage show to visualize the dependency graph.
E006Quality rule failedA quality metric (e.g., freshness) is below the threshold defined in your contract. See Validation Rules for the quality rule grammar.
E007Agent boundary violationThe agent attempted an action it is not authorized to perform. Check the agent's boundaries in agents/AGENTS.md and its System Card.
E008Approval required: {policy}This action cannot proceed until approved by a human. See Approval Workflows to understand the policy that was triggered, and Risk Scoring for the threshold that caused it.
E009Invalid state transitionYou cannot move directly between certain lifecycle states (e.g., draft → active). Check the state machine for allowed transitions.
E010Version conflictThe artifact has been modified since you last read it. Pull changes and retry. See Version Compatibility for supported spec versions.

Understanding Error Context

Each error message includes the file path and line number where the issue was detected. In --json output mode, errors include structured metadata that can be parsed by CI/CD pipelines:

{
  "code": "E002",
  "message": "Missing required field: info.owner",
  "file": "products/customer-360.yaml",
  "line": 3,
  "severity": "error"
}

Use --format json with the choochoo validate command to get machine-readable output. The severity field can be error or warning — in --strict mode, warnings are promoted to errors. See Configuration to set strict mode as the default.

On this page