{"record":{"id":"e8c0cae5e817d21b","repo":"paperclipai/paperclip","slug":"server-bind-tailnet-requires-a-detected-tailscale","errorCode":null,"errorMessage":"server.bind=tailnet requires a detected Tailscale address or PAPERCLIP_TAILNET_BIND_HOST","messagePattern":"server\\.bind=tailnet requires a detected Tailscale address or PAPERCLIP_TAILNET_BIND_HOST","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/config.ts","lineNumber":306,"sourceCode":"    workspaceReaperCooldownDaysEnv\n      && Number.isFinite(workspaceReaperCooldownDaysRaw)\n      && workspaceReaperCooldownDaysRaw >= 0\n      ? workspaceReaperCooldownDaysRaw\n      : 7;\n  const bindValidationErrors = validateConfiguredBindMode({\n    deploymentMode,\n    deploymentExposure,\n    bind,\n    host: configuredHost,\n    customBindHost,\n  });\n  if (bindValidationErrors.length > 0) {\n    throw new Error(bindValidationErrors[0]);\n  }\n  const resolvedBind = resolveRuntimeBind({\n    bind,\n    host: configuredHost,\n    customBindHost,\n    tailnetBindHost,\n  });\n  if (resolvedBind.errors.length > 0) {\n    throw new Error(resolvedBind.errors[0]);\n  }\n\n  return {\n    deploymentMode,\n    deploymentExposure,\n    bind: resolvedBind.bind,\n    customBindHost: resolvedBind.customBindHost,\n    host: resolvedBind.host,\n    port: Number(process.env.PORT) || fileConfig?.server.port || 3100,\n    allowedHostnames,\n    authBaseUrlMode,\n    authPublicBaseUrl,\n    authDisableSignUp,\n    databaseMode: fileDatabaseMode,","sourceCodeStart":288,"sourceCodeEnd":324,"githubUrl":"https://github.com/paperclipai/paperclip/blob/01ad8584922b5d85292b1723cae71fa0d9b07a19/server/src/config.ts#L288-L324","documentation":"Bind-resolution error surfaced by resolveRuntimeBind inside loadConfig: server.bind=tailnet was requested, but no Tailscale address could be detected on this host and PAPERCLIP_TAILNET_BIND_HOST is unset. The tailnet bind target is indeterminate, so startup stops.","triggerScenarios":"Thrown at server/src/config.ts:301 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set PAPERCLIP_TAILNET_BIND_HOST to the machine's Tailscale address.","Ensure Tailscale is running so the address can be detected, or use a different server.bind mode."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"01ad8584922b5d85292b1723cae71fa0d9b07a19","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}