{"record":{"id":"8102d48101747b60","repo":"diegosouzapw/OmniRoute","slug":"failed-to-determine-the-tailscale-funnel-url","errorCode":null,"errorMessage":"Failed to determine the Tailscale Funnel URL","messagePattern":"Failed to determine the Tailscale Funnel URL","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/tailscaleTunnel.ts","lineNumber":912,"sourceCode":"        };\n      }\n    }\n\n    const funnelResult = await startTailscaleFunnel(targetPort);\n    if (\"funnelNotEnabled\" in funnelResult) {\n      await updateStateFile({ lastError: null });\n      return {\n        success: false,\n        funnelNotEnabled: true,\n        enableUrl: funnelResult.enableUrl,\n        status: await getTailscaleTunnelStatus(),\n      };\n    }\n\n    const tunnelUrl =\n      funnelResult.tunnelUrl || (await getLiveTunnelUrl((await resolveBinary()).binaryPath));\n    if (!tunnelUrl) {\n      throw new Error(\"Failed to determine the Tailscale Funnel URL\");\n    }\n\n    await updateSettings({\n      tailscaleEnabled: true,\n      tailscaleUrl: tunnelUrl,\n    });\n    await updateStateFile({\n      tunnelUrl,\n      lastError: null,\n    });\n\n    return {\n      success: true,\n      tunnelUrl,\n      apiUrl: getTailscaleApiUrl(tunnelUrl),\n      status: await getTailscaleTunnelStatus(),\n    };\n  } catch (error) {","sourceCodeStart":894,"sourceCodeEnd":930,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/tailscaleTunnel.ts#L894-L930","documentation":"Funnel URL resolution failure: startTailscaleFunnel succeeded (or returned a tunnelUrl) but both funnelResult.tunnelUrl and a live query via getLiveTunnelUrl came back empty — the daemon is running yet no https://…ts.net funnel address can be determined. Typically Funnel just enabled but attrs/DNS haven't propagated, or the tailnet name isn't resolvable yet.","triggerScenarios":"Thrown at src/lib/tailscaleTunnel.ts:912 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry after a few seconds — funnel DNS/attr propagation is often delayed","Run `tailscale status`/`tailscale funnel status` to confirm Funnel is active","Check MagicDNS + HTTPS cert provisioning on the tailnet"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}