{"record":{"id":"e6e74e7c16445a73","repo":"abhigyanpatwari/GitNexus","slug":"cannot-repair-fts-indexes-the-ladybugdb-fts-exten","errorCode":null,"errorMessage":"Cannot repair FTS indexes: the LadybugDB FTS extension failed to load — ${ftsReason}. Retry with network access and GITNEXUS_LBUG_EXTENSION_INSTALL=auto to install it, or pre-install the extension file; run `gitnexus doctor` for live FTS status.","messagePattern":"Cannot repair FTS indexes: the LadybugDB FTS extension failed to load — (.+?)\\. Retry with network access and GITNEXUS_LBUG_EXTENSION_INSTALL=auto to install it, or pre-install the extension file; run `gitnexus doctor` for live FTS status\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"gitnexus/src/core/run-analyze.ts","lineNumber":1264,"sourceCode":"        // NOTE: deliberately the exported `getExtensionCapabilities()` rather\n        // than `getFtsCapability()`. The #2383 regression tests stub that\n        // export to inject a classified load failure; routing through the\n        // helper bypasses the stub (ESM internal calls do not see a module\n        // mock), and the classified VC++/ELF remedy silently degrades to\n        // generic text — which is exactly the contradiction #2383 fixed.\n        const rawFtsReason = getExtensionCapabilities().find((c) => c.name === 'fts')?.reason;\n        const ftsReason = rawFtsReason?.replace(/\\.$/, '');\n        // A missing runtime dependency (Windows error 126, #2374) is not healed\n        // by re-installing — the file is already present. Route that class to the\n        // classified remedy (install VC++ redist / OpenSSL) instead of the old\n        // \"retry the network install\" text that trapped the user in a loop.\n        const { kind, remedy } = diagnoseExtensionLoad(rawFtsReason);\n        const remedyTail =\n          kind === 'missing_dependency'\n            ? ` ${remedy}`\n            : '. Retry with network access and GITNEXUS_LBUG_EXTENSION_INSTALL=auto to install it, ' +\n              'or pre-install the extension file; run `gitnexus doctor` for live FTS status.';\n        throw new Error(\n          'Cannot repair FTS indexes: the LadybugDB FTS extension failed to load' +\n            (ftsReason ? ` — ${ftsReason}` : '') +\n            remedyTail,\n        );\n      }\n      progress('fts', 85, 'Repairing search indexes...');\n      const repairFailures = await createSearchFTSIndexes({\n        onIndexStart: options.verbose\n          ? (table, indexName) => log(`FTS: creating ${table}.${indexName}`)\n          : undefined,\n        onIndexReady: options.verbose\n          ? (table, indexName) => log(`FTS: ready ${table}.${indexName}`)\n          : undefined,\n      });\n      const missing = await verifySearchFTSIndexes(executeQuery);\n      if (missing.length > 0) {\n        // #2889: name WHY each index is missing when the build itself said so.\n        // Repair now rebuilds every table it can before reporting, so the tables","sourceCodeStart":1246,"sourceCodeEnd":1282,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/0d1aed942f0e8b5d3bac27519fff441aceea722d/gitnexus/src/core/run-analyze.ts#L1246-L1282","documentation":"Error \"Cannot repair FTS indexes: the LadybugDB FTS extension failed to load — ${ftsReason}. Retry with network access and GITNEXUS_LBUG_EXTENSION_INSTALL=auto to install it, or pre-install the extension file; run `gitnexus doctor` for live FTS status.\" thrown in abhigyanpatwari/GitNexus.","triggerScenarios":"Thrown at gitnexus/src/core/run-analyze.ts:1200 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0d1aed942f0e8b5d3bac27519fff441aceea722d","analyzedAt":"2026-08-20T23:29:22.980Z","contentChangedAt":"2026-08-20T23:29:22.980Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}