Troubleshooting
graph.toml is missing or corrupt
Section titled “graph.toml is missing or corrupt”Symptom: trurlic serve or trurlic status errors with “graph.toml not found” or parse errors.
Solution: Rebuild the index from node files:
trurlic check --rebuildThis regenerates graph.toml deterministically from the TOML node files in components/, decisions/, and patterns/. Note: non-inferable edges (ConnectsTo, DependsOn, Constrains) cannot be reconstructed from node files alone — they will be lost. Re-add connections after rebuild.
BLAKE3 hash mismatch
Section titled “BLAKE3 hash mismatch”Symptom: trurlic check warns about hash mismatches.
Cause: A node file was modified outside Trurlic (hand edit, git merge, external tool) without updating the graph index.
Solution: Run trurlic check to reconcile. If the edit was intentional, the check will update the hashes. If the edit was unintentional, inspect the file and revert if needed.
File lock contention
Section titled “File lock contention”Symptom: CLI commands hang or return slowly when the MCP server is running.
Cause: A write tool is holding the file lock. This should resolve in milliseconds — write tools complete in under 50ms.
Solution: If the hang persists, the MCP server may be stuck. Restart it. Check for zombie trurlic serve processes.
MCP server not connecting
Section titled “MCP server not connecting”Symptom: IDE agent cannot find or connect to the Trurlic MCP server.
Checklist:
- Is the server running?
trurlic servemust be started before the agent connects. - Is the config correct? Run
trurlic install --ide <target> --dry-runto see the expected config snippet, and compare with your IDE’s MCP configuration file. - Is the working directory correct?
trurlic servereads.trurlic/from the current directory. The IDE must launch the server from your project root. - Is
trurlicon PATH? Runwhich trurlicto verify. If installed viacargo install, check that~/.cargo/binis in your PATH.
Quick fix: Use trurlic install --ide <target> to auto-write the correct MCP configuration for your IDE. See CLI Reference — trurlic install for supported targets.
Design conversation fails to start
Section titled “Design conversation fails to start”Symptom: trurlic design exits with an API key error.
Checklist:
- Is an API key set? Check
echo $ANTHROPIC_API_KEY(or the relevant provider’s variable). - Is the config file readable? Check
ls -la ~/.config/trurlic/config.toml— permissions must be600(owner-only). - Are multiple keys set without a provider flag? If both
ANTHROPIC_API_KEYandOPENAI_API_KEYare set, Trurlic requires-pto disambiguate. Alternatively, setdefault_providerin the config file.
Ollama connection refused
Section titled “Ollama connection refused”Symptom: trurlic design -p ollama fails with a connection error.
Cause: Ollama is not running, or it’s on a non-default address.
Checklist:
- Is Ollama running? Start it with
ollama serve. - Is the URL correct? The default is
http://localhost:11434/v1. Override withOLLAMA_BASE_URLorollama_base_urlin the config file. - Is the model pulled? Run
ollama pull llama3.1(or your target model) before using it with Trurlic.
Custom provider base URL missing
Section titled “Custom provider base URL missing”Symptom: trurlic design -p custom fails with “custom provider requires CUSTOM_BASE_URL.”
Solution: Set the base URL via environment variable or config file:
export CUSTOM_BASE_URL="http://my-server:8080/v1"Or in ~/.config/trurlic/config.toml:
custom_base_url = "http://my-server:8080/v1"Component not found
Section titled “Component not found”Symptom: advance or get_context returns “component not found.”
Cause: The component name doesn’t match any file in .trurlic/components/.
Solution: Check exact spelling. Component names are kebab-case. Use trurlic status to list all components. Use project (not a component name) for project-wide decisions.
Decision write rejected
Section titled “Decision write rejected”Symptom: record_decision returns a validation error.
Common causes:
- Component doesn’t exist — the referenced component must be added first via
add_component. - Dangling edge —
depends_onorconstrainsreferences a decision name that doesn’t exist. - Cycle detected — the proposed
DependsOnedge would create a cycle. - Reserved name —
projectandallare reserved and cannot be used as component names.
Map won’t open
Section titled “Map won’t open”Symptom: trurlic map starts the server but the browser doesn’t open.
Solution: Use --no-open and navigate manually:
trurlic map --no-open# Copy the printed URL to your browserOn headless or WSL environments, opener may fail silently. The URL is always printed to stdout.
Bootstrap finds nothing
Section titled “Bootstrap finds nothing”Symptom: Bootstrap completes but records zero or few decisions.
Cause: The agent may not have access to your source code, or the project is too small for meaningful extraction.
Solution: For direct bootstrap (-p), ensure the LLM can see your source files. For agent bootstrap, verify the agent has file read access. Consider running trurlic design interactively instead for smaller projects.
Session recovery
Section titled “Session recovery”Symptom: A design session was interrupted and you want to continue.
Solution: Design sessions are persisted in .trurlic/.state/sessions/. Resume with:
trurlic design <component> --continueIf session files are corrupted, delete .trurlic/.state/sessions/ and start fresh. Decisions already recorded to .trurlic/decisions/ are unaffected — only the session progress is lost.
Getting help
Section titled “Getting help”- GitHub Issues: github.com/trurlic-labs/trurlic/issues — bugs and feature requests.
- Security vulnerabilities: See SECURITY.md — do not open public issues.
- Version info:
trurlic --versionfor your installed version.