Interpret failures

Updated Sep 02, 2026

Netsuke reports failures at the earliest stage that can identify them:

  • YAML failures include locations when the parser provides them.
  • Schema failures identify unknown or malformed fields.
  • Jinja failures identify missing variables or invalid helpers.
  • IR failures report missing rules, duplicate outputs, and cycles before Ninja starts.
  • Ninja failures retain the subprocess exit status and output.

Human diagnostics include remediation hints where one is available. JSON mode exposes the same information as fields.

Terminal human-mode configuration-load events emitted by config_err_to_exit include structured operation and error_category fields. operation is diag_mode_resolution for the early diagnostic preference phase or config_merge for the full configuration-merge phase; error_category is io, validation, or parse. Paths and display text are never recorded. JSON mode preserves the diagnostic document as the machine-readable failure output.

The --verbose flag enables diagnostic tracing, successful timing summaries, and the final metrics snapshot described in Diagnose configuration selection. It is suppressed in JSON mode so stderr remains parseable.