Troubleshooting
Symptoms observed in production, with the diagnosis that actually explained them.
model_executor: false, search unavailable
The model has not loaded. Check the log for the resolved cache path:
INFO Resolving model from Hugging Face: BAAI/bge-small-en-v1.5 (cache: .../huggingface/hub)
If that path does not end in hub, the cache is misconfigured and the server
is re-downloading weights it may already have. MODEL_CACHE_DIR should name the
HuggingFace home; the server appends hub.
executor generation N was nonresponsive and restarted
The supervisor's watchdog fired. Distinguish two cases:
During startup — if no Loading Candle embeddings model line preceded it,
the child died before it could read a request. Raise
SURREAL_EXECUTOR_STARTUP_MS. GPU initialization is highly variable and has been
measured from 1.2s to over 150s on the same host depending on load.
While serving — if the child had accepted a request, something genuinely stalled. That is a real fault worth investigating.
Everything is slow, including /health
/health is a static handler. If it takes tens of seconds, the process is not
being scheduled — check uptime before suspecting code.
Timing symptoms on a saturated machine are not evidence about the server. A load average many times the core count will make every timeout look like a hang.
Found field X, but no such field exists
A Rust struct has a field with no matching DEFINE FIELD. Add a migration; see
Migrations.
Nested JSON rejected on a metadata field
option<object> accepts None or a flat object but rejects nesting. The field
needs FLEXIBLE TYPE option<object>.
Mindmap updates time out
Mindmaps over ~500 nodes hit a SurrealDB bottleneck with UPDATE CONTENT on
large nested objects. Updates carry a 30s timeout so they fail fast. Split large
hierarchies, or use TaskStreams for linear context.
Empty search results for an agent
Check the scope. For CLI and agent consumers, user_id must be "anonymous" so
filtering happens on agent_id. Setting user_id = agent_id filters on a value
nothing was written under, and returns nothing.
Embedded mode fails to open the database
RocksDB cannot be opened by two processes at once. Use server mode for multi-process access.