{"record":{"id":"8652e22fcd5d7dc0","repo":"diegosouzapw/OmniRoute","slug":"failed-to-uninstall-certificate","errorCode":null,"errorMessage":"Failed to uninstall certificate","messagePattern":"Failed to uninstall certificate","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/mitm/cert/install.ts","lineNumber":479,"sourceCode":"\nasync function uninstallCertMac(sudoPassword: string, certPath: string): Promise<void> {\n  const fingerprint = getCertFingerprint(certPath).replace(/:/g, \"\");\n  try {\n    await execFileWithPassword(\n      \"sudo\",\n      [\n        \"-S\",\n        \"security\",\n        \"delete-certificate\",\n        \"-Z\",\n        fingerprint,\n        \"/Library/Keychains/System.keychain\",\n      ],\n      sudoPassword\n    );\n    console.log(\"✅ Uninstalled certificate from system keychain\");\n  } catch (err) {\n    throw new Error(\"Failed to uninstall certificate\");\n  }\n}\n\nasync function uninstallCertLinux(sudoPassword: string, certPath: string): Promise<void> {\n  try {\n    await updateNssDatabases(null, \"delete\");\n\n    const config = getLinuxCertConfig();\n    const destFile = `${config.dir}/${LINUX_CERT_NAME}`;\n\n    if (fs.existsSync(destFile)) {\n      await execFileWithPassword(\"sudo\", [\"-S\", \"rm\", \"-f\", destFile], sudoPassword);\n    }\n\n    try {\n      await execFileWithPassword(\"sudo\", [\"-S\", config.cmd, \"--fresh\"], sudoPassword);\n    } catch {\n      await execFileWithPassword(\"sudo\", [\"-S\", config.cmd], sudoPassword);","sourceCodeStart":461,"sourceCodeEnd":497,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/mitm/cert/install.ts#L461-L497","documentation":"Error \"Failed to uninstall certificate\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/mitm/cert/install.ts:479 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":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}