Common failures
Common failures
Section titled “Common failures”First MCP connect times out (uvx cold start)
Section titled “First MCP connect times out (uvx cold start)”-
Symptom: the first MCP connect after registering jarvis-mcp exceeds the client’s timeout — many clients give up around 30s.
-
Diagnosis: on a cold
uvcache,uvx --from jarvis-mcp jarvis-servereither resolves a prebuilt wheel (macOS and common Linux glibc platforms publish cp312–cp314 wheels — that path is fast) or, on any other platform, builds jarvis-mcp’s Rust extension from the source distribution (maturinvia PEP 517), which takes 5+ minutes the first time. -
Fix (verified):
Terminal window uv tool install --python 3.13 jarvis-mcpThis builds and caches the wheel once. Subsequent
uvx --from jarvis-mcp jarvis-servercold starts in seconds.
jarvis or jarvis-server not found (PATH)
Section titled “jarvis or jarvis-server not found (PATH)”-
Symptom: the shell reports
jarvis: command not foundorjarvis-server: command not found, or a GUI client can’t spawn the server at all. -
Diagnosis:
~/.jarvis/bin(setup.sh’s install directory) or theuv toolbin directory is not onPATH. GUI apps launched outside a shell don’t inherit shellPATHchanges. -
Fix:
Terminal window which jarvis-serverAdd the printed directory to
PATHfor your shell. For a GUI client’s MCP registration, use the absolute path fromwhich jarvis-serverdirectly in the config instead of relying onPATH.
jarvis index refuses an old scip (version gate)
Section titled “jarvis index refuses an old scip (version gate)”-
Symptom:
jarvis indexexits with an error naming the installedscipversion instead of indexing. -
Diagnosis: below
scip 0.9.0, the converter silently writes a schema-valid database with zero chunks and zero mentions — jarvis refuses to publish that rather than pretending it worked. -
Fix:
Terminal window sh ./setup.sh --only scip --forcescip --version # confirm >= 0.9.0jarvis reindex <slug>
semanticSearch server fails to connect (Python version)
Section titled “semanticSearch server fails to connect (Python version)”-
Symptom: the second (semantic) MCP server registration fails to connect with a closed-connection error.
-
Diagnosis: the ambient
uvPython is below 3.12 —jarvis-mcp[semantic]ships wheels only for cp312/cp313/cp314. -
Fix (verified):
Terminal window uvx --python 3.13 --from "jarvis-mcp[semantic]" jarvis-serverPin the Python version explicitly in your MCP client’s registration for this second server.
semanticSearch returns an error
Section titled “semanticSearch returns an error”-
Cause: the
[semantic]extra is not installed. -
Fix:
Terminal window uv tool install --python 3.13 "jarvis-mcp[semantic]"jarvis reindex <slug>
jarvis watch fails to start
Section titled “jarvis watch fails to start”-
Cause: the
[watch]extra is not installed. -
Fix:
Terminal window uv tool install --python 3.13 "jarvis-mcp[watch]"This installs
watchdog(>=4.0).
searchCode returns results from the wrong repo
Section titled “searchCode returns results from the wrong repo”-
Cause: Zoekt derives the repo name from the directory basename if not pinned, causing collisions across repos with the same name.
-
Fix:
setup.shpins each repo withgit config zoekt.name <slug>. If you indexed manually withoutsetup.sh, run this in the repo and reindex:Terminal window git config zoekt.name <slug>jarvis reindex <slug>
Navigation empty but search works (search-only)
Section titled “Navigation empty but search works (search-only)”Navigation tools (goToDefinition, findReferences, etc.) return empty but searchCode works.
-
Cause: the indexer fell back to
--search-only(no SCIP index). Checkjarvis status <slug>output. This also happens automatically for Android/Gradle repos (scip-javacan’t index them at all) and for multi-module Gradle builds with a Kotlin version mismatch — both degrade to search-only rather than failing the index run. -
Fix: install the right language indexer (e.g.
scip-pythonviasetup.sh) and reindex:Terminal window jarvis reindex <slug>
getIndexStatus reports stale
Section titled “getIndexStatus reports stale”-
Cause: the published commit SHA differs from
git rev-parse HEAD. -
Fix:
Terminal window jarvis reindex <slug>
blastRadius freshness is always unknown
Section titled “blastRadius freshness is always unknown”- This is by design. The dependency graph has no per-node timestamp, so
blastRadiusreportsfreshness: "unknown"for every result. It is not a bug. See Concepts: Blast Radius.