{"record":{"id":"78ef084e74b92d9a","repo":"abhigyanpatwari/GitNexus","slug":"gitnexus-lockpath-is-still-present-after-the-w","errorCode":null,"errorMessage":"GitNexus: ${lockPath} is still present after the wipe retries — continuing: the lock file is contentless and initLbug recreates it; a genuinely held lock will surface as the reopen's own lock-busy error.","messagePattern":"GitNexus: (.+?) is still present after the wipe retries — continuing: the lock file is contentless and initLbug recreates it; a genuinely held lock will surface as the reopen's own lock-busy error\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"gitnexus/src/core/lbug/lbug-adapter.ts","lineNumber":2398,"sourceCode":"        // but the ENOENT-probe below stays authoritative either way (another\n        // process may have removed the path between the rm and the probe).\n      }\n      const gone = await fs.access(f).then(\n        () => false, // still present\n        (err: unknown) => (err as NodeJS.ErrnoException | null)?.code === 'ENOENT',\n      );\n      if (!gone) survivors.push(f);\n    }\n    if (survivors.length === 0) return;\n    if (attempt < HANDLE_RELEASE_PROBE_ATTEMPTS) {\n      await sleep(HANDLE_RELEASE_PROBE_DELAY_MS * attempt);\n    }\n  }\n\n  // Class split (FIX 2): the contentless `.lock` never fails the wipe.\n  const dataSurvivors = survivors.filter((f) => f !== lockPath);\n  if (survivors.includes(lockPath)) {\n    logger.warn(\n      `GitNexus: ${lockPath} is still present after the wipe retries — continuing: the ` +\n        'lock file is contentless and initLbug recreates it; a genuinely held lock will ' +\n        \"surface as the reopen's own lock-busy error.\",\n    );\n  }\n  if (dataSurvivors.length > 0) {\n    throw new LbugWipeError(dataSurvivors);\n  }\n};\n\nexport const isLbugReady = (): boolean => conn !== null && db !== null;\n\n/**\n * Multi-label alternation over exactly the labels that can own embedding\n * rows: EMBEDDABLE_LABELS plus File, which embedding-pipeline.ts embeds as\n * the zero-symbol fallback for text-only repositories (#2454). Reserved\n * keywords are backtick-escaped via {@link escapeTableName}. Probed on\n * @ladybugdb/core 0.18.0 (this shipping review, FIX 4): the full multi-label","sourceCodeStart":2380,"sourceCodeEnd":2416,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/0d1aed942f0e8b5d3bac27519fff441aceea722d/gitnexus/src/core/lbug/lbug-adapter.ts#L2380-L2416","documentation":"Error \"GitNexus: ${lockPath} is still present after the wipe retries — continuing: the lock file is contentless and initLbug recreates it; a genuinely held lock will surface as the reopen's own lock-busy error.\" thrown in abhigyanpatwari/GitNexus.","triggerScenarios":"Thrown at gitnexus/src/core/lbug/lbug-adapter.ts:2376 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-14T00:17:10.932Z"}