#3218·GitNexus

Windows FTS still fails on fresh installations: bundle required runtime dependencies instead of relying on external DLLs

Author: PieceOfFallCreated Sep 8, 2026Updated Sep 8, 2026
Labelsbug

Area

gitnexus (CLI / core / indexing / MCP server)

Summary

On newly set up Windows machines, GitNexus completes repository analysis without FTS indexes. Running gitnexus analyze --repair-fts then fails because the LadybugDB FTS extension cannot be loaded, even though the extension file exists and installation succeeds.

This appears consistent with the Windows dependency packaging problem discussed in #2374 and LadybugDB/ladybug#685. Improved diagnostics are helpful, but the fresh-install experience remains broken in my environment.

Context

I am integrating GitNexus into our team's standardized backend development template as part of our engineering workflow. The goal is for developers to adopt the template, index their repositories, and use GitNexus's code graph and full-text/BM25 search through CLI and MCP with minimal manual setup.

During onboarding on newly configured Windows machines, I found that initial analysis completed without FTS indexes, and gitnexus analyze --repair-fts failed when loading the installed extension.

This makes team-wide adoption unreliable: FTS availability depends on each developer's existing runtime dependencies and PATH, rather than a reproducible setup. Requiring developers to borrow OpenSSL DLLs from Git for Windows or configure different terminal and IDE environments creates additional onboarding and support work.

Relevant issues and PRs:

For this use case, we need a reproducible Windows installation that handles required dependencies consistently across indexing, CLI queries, and IDE-launched MCP processes.

Expected behavior

A supported Windows installation should be able to build and use FTS indexes without depending on unrelated applications exposing compatible DLLs through PATH.

If a system runtime must remain an external prerequisite, GitNexus should detect it explicitly and provide actionable setup instructions before indexing proceeds without FTS.

Actual behavior

The FTS extension is present, but Windows cannot load it. Re-running --repair-fts does not resolve the failure.

Relevant log excerpt, with the username redacted:

GitNexus Analyzer (1.6.11)

Analysis failed: Cannot repair FTS indexes:
the LadybugDB FTS extension failed to load —
LOAD fts failed after successful INSTALL:

IO exception: Failed to load library:
C:\Users\<user>/.lbdb/extension/0.19.0/win_amd64/fts/libfts.lbug_extension
which is needed by extension: fts.

Error:  Ҳ   ָ    ģ 顣 .

The extension itself was found, so a library it depends on is the one
that could not be located. Extensions link against OpenSSL 3
(libssl-3-x64.dll and libcrypto-3-x64.dll),
which is not distributed with them.

The localized Windows error is also garbled, making it harder to identify the underlying loader error. The OpenSSL message suggests a likely cause, but I have not independently identified the exact missing DLL on these machines.

Steps to reproduce

  1. Install GitNexus on a newly set up Windows machine.
  2. Run gitnexus analyze in a repository.
  3. Observe that analysis completes without FTS indexes.
  4. Run gitnexus analyze --repair-fts.
  5. Observe the extension loading failure.

Environment

  • OS: Windows x64
  • GitNexus: 1.6.11
  • LadybugDB extension version: 0.19.0, as shown in the extension path
  • Installation: global npm installation
  • Location: mainland China

Although these machines are in mainland China, the reported failure occurs during LOAD after successful INSTALL, rather than during extension download.

Logs / screenshots

GitNexus Analyzer (1.6.11) t could not be located. Extensions link against OpenSSL 3 (libssl-3-x64.dll and libcrypto-3-x64.dll), which is not distributed with them."}: fts. Error: Ҳ ָ ģ 顣 . The extension itself was found, so a library it depends on is the one tha Analysis failed: Cannot repair FTS indexes: the LadybugDB FTS extension failed to load — LOAD fts failed after successful INSTALL: IO exception: Failed to load library: C:\Users\fanweigang/.lbdb/extension/0.19.0/win_amd64/fts/libfts.lbug_extension which is needed by extension: fts. Error: Ҳ ָ ģ 顣 . The extension itself was found, so a library it depends on is the one that could not be located. Extensions link against OpenSSL 3 (libssl-3-x64.dll and libcrypto-3-x64.dll), which is not distributed with them The FTS extension file was found but could not be loaded — see the "Error:" text above (shown in your system's language). Reinstalling usually will not help. If it names a missing module or library, install the required runtime (on Windows: the Microsoft Visual C++ 2015-2022 Redistributable x64 and OpenSSL 3); if it names a corrupt or invalid file, run gitnexus analyze --repair-fts to re-download. Error: Cannot repair FTS indexes: the LadybugDB FTS extension failed to load — LOAD fts failed after successful INSTALL: IO exception: Failed to load library: C:\Users\fanweigang/.lbdb/extension/0.19.0/win_amd64/fts/libfts.lbug_extension which is needed by extension: fts. Error: Ҳ ָ ģ 顣 . The extension itself was found, so a library it depends on is the one that could not be located. Extensions link against OpenSSL 3 (libssl-3-x64.dll and libcrypto-3-x64.dll), which is not distributed with them The FTS extension file was found but could not be loaded — see the "Error:" text above (shown in your system's language). Reinstalling usually will not help. If it names a missing module or library, install the required runtime (on Windows: the Microsoft Visual C++ 2015-2022 Redistributable x64 and OpenSSL 3); if it names a corrupt or invalid file, run gitnexus analyze --repair-fts to re-download. at runFullAnalysisInner (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/core/run-analyze.js:742:23) at async runFullAnalysis (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/core/run-analyze.js:626:16) at async analyzeCommandImpl (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/cli/analyze.js:1153:24) at async analyzeCommand (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/cli/analyze.js:584:9) at async analyzeOrWatchCommandWithRunnerIdentity (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/cli/analyze.js:609:5) at async Command. (file:///C:/Users/xxxxxx/AppData/Roaming/npm/node_modules/gitnexus/dist/cli/lazy-action.js:60:9)

Source: abhigyanpatwari/GitNexus