{"record":{"id":"499bcb3daa3d0501","repo":"paperclipai/paperclip","slug":"authenticated-public-deployments-require-database-499bcb","errorCode":null,"errorMessage":"authenticated public deployments require DATABASE_URL to be a postgres/postgresql connection string","messagePattern":"authenticated public deployments require DATABASE_URL to be a postgres/postgresql connection string","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"server/src/index.ts","lineNumber":267,"sourceCode":"    try {\n      const parsed = new URL(connectionString);\n      return parsed.protocol === \"postgres:\" || parsed.protocol === \"postgresql:\";\n    } catch {\n      return false;\n    }\n  }\n\n  function assertCloudDatabaseContract(): void {\n    if (config.deploymentMode !== \"authenticated\" || config.deploymentExposure !== \"public\") {\n      return;\n    }\n    if (!config.databaseUrl) {\n      throw new Error(\n        \"authenticated public deployments require DATABASE_URL or config.database.connectionString; refusing embedded PostgreSQL fallback\",\n      );\n    }\n    if (!isPostgresConnectionString(config.databaseUrl)) {\n      throw new Error(\n        \"authenticated public deployments require DATABASE_URL to be a postgres/postgresql connection string\",\n      );\n    }\n  }\n\n  const LOCAL_BOARD_USER_ID = \"local-board\";\n  const LOCAL_BOARD_USER_EMAIL = \"local@paperclip.local\";\n  const LOCAL_BOARD_USER_NAME = \"Board\";\n  \n  async function ensureLocalTrustedBoardPrincipal(db: any): Promise<void> {\n    const now = new Date();\n    const existingUser = await db\n      .select({ id: authUsers.id })\n      .from(authUsers)\n      .where(eq(authUsers.id, LOCAL_BOARD_USER_ID))\n      .then((rows: Array<{ id: string }>) => rows[0] ?? null);\n  \n    if (!existingUser) {","sourceCodeStart":249,"sourceCodeEnd":285,"githubUrl":"https://github.com/paperclipai/paperclip/blob/a7e689b3c35347b529cb9f54c9b9a8575a3dcab6/server/src/index.ts#L249-L285","documentation":"Deployment contract guard in assertCloudDatabaseContract: DATABASE_URL is set for an authenticated public deployment, but its URL scheme is not postgres: or postgresql: (isPostgresConnectionString returned false — unparseable URL or another scheme). Cloud deployments require a real PostgreSQL connection string, so startup aborts.","triggerScenarios":"Thrown at server/src/index.ts:260 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a postgres:// or postgresql:// connection string for DATABASE_URL."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a7e689b3c35347b529cb9f54c9b9a8575a3dcab6","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}