{"record":{"id":"e0e3b0df22dc55c1","repo":"abhigyanpatwari/GitNexus","slug":"cannot-start-dirty-state-recovery-the-interrupte","errorCode":null,"errorMessage":"Cannot start dirty-state recovery — the interrupted run's LadybugDB sidecars could neither be moved aside nor removed:\n  - ${survivors}\nThe blocking handle may be another process, a lingering handle from this process's just-closed database, or an antivirus scan — an immediate re-run often succeeds. If it persists, stop any GitNexus MCP or serve process using this repository, add an antivirus exclusion for the GitNexus storage directory, then re-run the analyze.","messagePattern":"Cannot start dirty-state recovery — the interrupted run's LadybugDB sidecars could neither be moved aside nor removed:\n  - (.+?)\nThe blocking handle may be another process, a lingering handle from this process's just-closed database, or an antivirus scan — an immediate re-run often succeeds\\. If it persists, stop any GitNexus MCP or serve process using this repository, add an antivirus exclusion for the GitNexus storage directory, then re-run the analyze\\.","errorType":"exception","errorClass":"LbugWipeError","httpStatus":null,"severity":"error","filePath":"gitnexus/src/core/run-analyze.ts","lineNumber":1477,"sourceCode":"          'from the interrupted run (the file could not be moved aside, so its bytes were ' +\n          'removed — post-mortem forensics lost). Recovery proceeds with full embedding ' +\n          'preservation.',\n      );\n    }\n    if (failed.length > 0) {\n      // FIX 1 (this shipping review, replacing the tri-review 4669518496\n      // P2-3 drop-shape design): under a persistent lock the old drop-shape\n      // run derived its embedding mode as \"drop\", ran the WHOLE pipeline,\n      // and then died at the rebuild wipe on the very same handle — wasting\n      // minutes and zeroing embeddings on the way. A possibly-poisoned\n      // sidecar still sits next to the DB (any pre-wipe open would replay it\n      // and die), so failing here, in seconds, with the same actionable\n      // typed error the wipe would eventually throw is strictly better —\n      // and the CLI's LbugWipeError handler already renders it\n      // (recoveryHint 'lbug-wipe-failed'). The message is self-contained\n      // (headline + paths + lock guidance) because serve forwards only\n      // err.message over worker IPC.\n      throw new LbugWipeError(failed, {\n        headline:\n          \"Cannot start dirty-state recovery — the interrupted run's LadybugDB sidecars \" +\n          'could neither be moved aside nor removed:',\n      });\n    }\n  }\n\n  // ── pdg-mode flip forces full writeback (#2099 F1) ─────────────────\n  // The incremental writeback persists only changed-file nodes, so a pdg\n  // config differing from the one the DB rows were built under cannot be\n  // reconciled incrementally: off→on silently drops the freshly built CFG\n  // layer (\"Incremental: changed=0\", zero BasicBlock rows), on→off strands\n  // zombie blocks for unchanged files. MUST sit before the alreadyUpToDate\n  // fast path below — a clean-tree flip would otherwise early-return without\n  // running the pipeline at all. The notice is deliberately NOT gated on\n  // options.force: --skills implies force with no message of its own, and a\n  // mode change deserves a diagnostic regardless of why a rebuild happens.\n  if (existingMeta && pdgModeMismatch(existingMeta.pdg, options)) {","sourceCodeStart":1459,"sourceCodeEnd":1495,"githubUrl":"https://github.com/abhigyanpatwari/GitNexus/blob/0d1aed942f0e8b5d3bac27519fff441aceea722d/gitnexus/src/core/run-analyze.ts#L1459-L1495","documentation":"Error \"Cannot start dirty-state recovery — the interrupted run's LadybugDB sidecars could neither be moved aside nor removed:\n  - ${survivors}\nThe blocking handle may be another process, a lingering handle from this process's just-closed database, or an antivirus scan — an immediate re-run often succeeds. If it persists, stop any GitNexus MCP or serve process using this repository, add an antivirus exclusion for the GitNexus storage directory, then re-run the analyze.\" thrown in abhigyanpatwari/GitNexus.","triggerScenarios":"Thrown at gitnexus/src/core/run-analyze.ts:1406 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"}