{"record":{"id":"d837013b0bd5a4bd","repo":"diegosouzapw/OmniRoute","slug":"sudo-password-required-to-start-tailscaled","errorCode":null,"errorMessage":"Sudo password required to start tailscaled","messagePattern":"Sudo password required to start tailscaled","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"src/lib/tailscaleTunnel.ts","lineNumber":596,"sourceCode":"      // Ignore service start errors and verify below.\n    }\n\n    await sleep(2500);\n    if (!(await getLiveStatusPayload(resolution.binaryPath))) {\n      throw new Error(\"Failed to start Tailscale service\");\n    }\n\n    return { started: true };\n  }\n\n  const daemonBinary = await resolveDaemonBinary(resolution.binaryPath);\n  if (!daemonBinary) {\n    throw new Error(\"tailscaled binary not found\");\n  }\n\n  const password = toNonEmptyString(sudoPassword) || getCachedPassword() || \"\";\n  if (!password) {\n    throw new Error(\"Sudo password required to start tailscaled\");\n  }\n\n  setCachedPassword(password);\n  await ensureTailscaleDir();\n\n  const command = [\n    `mkdir -p ${shellEscape(getTailscaleDir())}`,\n    `nohup ${shellEscape(daemonBinary)} --socket=${shellEscape(getTailscaleSocketPath())} --statedir=${shellEscape(getTailscaleDir())} >> ${shellEscape(getLogFilePath())} 2>&1 & echo $! > ${shellEscape(getPidFilePath())}`,\n  ].join(\" && \");\n\n  await runSudoShell(command, password);\n  await sleep(3000);\n\n  // Re-probe socket after starting\n  invalidateSocketCache();\n\n  if (!(await getLiveStatusPayload(resolution.binaryPath))) {\n    throw new Error(\"tailscaled did not become ready\");","sourceCodeStart":578,"sourceCodeEnd":614,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/tailscaleTunnel.ts#L578-L614","documentation":"Error \"Sudo password required to start tailscaled\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/tailscaleTunnel.ts:596 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"}