Troubleshooting
The graph is empty or graph_stats reports 0 nodes
The graph has not been built in that directory. Read-only commands never create a .astria/ directory — run the pipeline first:
astria run <path>
Install fails or the native binary is missing
- Node.js >= 20 is required.
- No Rust toolchain is needed — the native core ships as prebuilt per-platform binaries via the package's optional dependencies. If your npm setup skips optional dependencies (
--no-optional, anomit=optionalin.npmrc), the binary never downloads; remove that and reinstall.
Query results look stale
Every query output reports when the graph was last built, so you can judge freshness directly. To refresh:
astria update <path> # incremental — only changed files
astria watch <path> # or keep it fresh automatically
export --format html refuses on a large repo
That is the safety limit: the default --mode standard interactive viewer is capped at 5,000 nodes and fails with an actionable message beyond that. Explicitly opt into the optimized viewer:
astria export --graph . --format html --mode large --out graph-view.html
add --postgres fails
Postgres introspection shells out to psql (read-only over information_schema — no credentials are stored). Install the Postgres client and make sure it is on PATH.
First run --embed is slow
The one-time ~90 MB local model download. After it, embedding refreshes are incremental and fully offline. To relocate the cache (e.g. onto a persistent dir in CI), set ASTRIA_EMBED_CACHE_DIR — see Environment variables.
A graph looks wrong
Run diagnose first — it is a read-only health report over the existing graph: dangling edge endpoints, self-loops, duplicate edges, unclassified files, and zero-cohesion communities. --json for tooling.
astria diagnose --graph .
For noise from fixtures, generated code, or vendored assets, exclude them with a .astriaignore file (gitignore syntax) in the project root and rebuild.
Too much inferred content in answers
Every edge carries a confidence class (EXTRACTED / INFERRED / AMBIGUOUS). Use the high-fidelity tier to see declared facts only:
astria query "..." --detail high
or detail: "high" on any MCP traversal tool.
The token benchmark shows <1× on my repo
That is the benchmark being honest, not broken. On tiny corpora, reading the files directly is cheaper than a graph query — there the graph's value is structure (blast radius, communities, paths), not compression. The output says so; see Benchmarks and evidence.
Learned edges are connecting things I didn't declare
Learned edges are INFERRED by design — they record which node pairs your own queries keep connecting. They flow into clustering and exports, but any high-fidelity traversal filters them out. If they mislead, prefer --detail high for that session; they are always re-derivable from query history.