Skip to content

Troubleshooting by symptom

Start with an explicit backend, fresh process, versions and import origins. Retain chained exceptions and distinguish setup failures from generated behavior.

Symptom Likely layer / next check Remedy or status
No astichi module Installation Reinstall the fresh candidate with dependencies; old wheels can omit Astichi
No yidl.concept_parser Artifact/import origin Rebuild current candidate; avoid stale local dist wheel
Unexpected COMMA in record Grammar Use whitespace-separated record entries
Missing imported source/export Source map/symbols Supply all texts under stable logical keys and export the concept
Wrong keyword/type in fact Generated schema Use storage names and emitted record types
Duplicate identity/cardinality Input facts Fix identity or choose an explicit write policy; port cardinality is per address
Already inherited production Concept composition New production name and selecting matcher; no silent override
Duplicate matcher default/rule Concept composition Keep inherited default; add distinct specialization rule
Duplicate visible value Contribution input scope Avoid semantic-name collision; do not invent qualified binding syntax
Duplicate instance name Build identity Distinguish contribution as/numeric index while sharing resources
External binding already queued Binding/build instance Check instance identity and cause chain, not just target hole
Missing build_Foo Assembly export Declare assembly Foo = Production; inspect actual emitted names
Unbound term_path Bind/target Minimize original nested pattern; D17 remains unresolved
Failed target next_term Live build graph Check selected destination, mapped roots and indices; unresolved D17
Failed to target stores Wrapped error Inspect exception cause; binding collision can look like target failure
Mandatory holes remain Materialization Wire explicit empty params/pass; no-match/suppression alone is insufficient
AST Load used as target Resource shape Use ordinary target or qualified transparent target wrapper
Marker survives / NameError Marker position/capture Check supported AST position, unresolved demand and namespace
Native finalization failure Backend/materialization Verify binary/package tuple, preserve original failure; Python success is bounded evidence
Output uses old resource Regeneration/import cache Regenerate authority and start new process
Golden matches but callback wrong Verification Independent behavior assertions, traces and raw-result checks before refresh

Debugging assembly shows facts, matcher results, paths and outputs to inspect. Compatibility distinguishes confirmed gaps, known limitations and unqualified arrangements. No generic trace flag or native recovery guarantee is invented by this guide.