ask-never-raises-on-llm-failure
IN premise
`ask()` catches `TimeoutExpired` and `RuntimeError` from `_invoke_claude()` and returns raw FTS5 search results instead of propagating the exception — the function guarantees a string return.
Summary
When the LLM call fails during a search query, the system silently falls back to raw database search results rather than crashing. This means callers never need to handle exceptions from ask() — they always get a usable string back, though the quality of that string may be lower when the LLM is unavailable.
Dependents
These beliefs depend on this one:
- ask-is-fault-tolerant-and-bounded — The ask module is fault-tolerant (always returns a string, catches LLM failures, falls back to raw FTS5 search) and execution-bounded (tool loop capped at 3 iterations), ensuring reliable bounded knowledge retrieval regardless of LLM availability.
Details
| Source | entries/2026/04/29/tests-test_ask.md |