{"record":{"id":"97bd3609a215d42e","repo":"paperclipai/paperclip","slug":"failed-to-restore-basename-opts-backupfile-wit","errorCode":null,"errorMessage":"Failed to restore ${basename(opts.backupFile)} with psql: ${sanitizeRestoreErrorMessage(error)}","messagePattern":"Failed to restore (.+?) with psql: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/db/src/backup-lib.ts","lineNumber":1001,"sourceCode":"    if (existsSync(sqlFile)) {\n      try { unlinkSync(sqlFile); } catch { /* ignore */ }\n    }\n    throw error;\n  } finally {\n    await closeSql();\n  }\n}\n\nexport async function runDatabaseRestore(opts: RunDatabaseRestoreOptions): Promise<void> {\n  const connectTimeout = Math.max(1, Math.trunc(opts.connectTimeoutSeconds ?? 5));\n  let psqlRestoreError: unknown = null;\n  try {\n    await restoreWithPsql(opts, connectTimeout);\n    return;\n  } catch (error) {\n    psqlRestoreError = error;\n    if (!(await hasStatementBreakpoints(opts.backupFile))) {\n      throw new Error(\n        `Failed to restore ${basename(opts.backupFile)} with psql: ${sanitizeRestoreErrorMessage(error)}`,\n      );\n    }\n  }\n\n  const sql = postgres(opts.connectionString, { max: 1, connect_timeout: connectTimeout });\n\n  try {\n    await sql`SELECT 1`;\n    for await (const statement of readRestoreStatements(opts.backupFile)) {\n      await sql.unsafe(statement).execute();\n    }\n  } catch (error) {\n    const statementPreview = typeof error === \"object\" && error !== null && typeof (error as Record<string, unknown>).query === \"string\"\n      ? String((error as Record<string, unknown>).query)\n        .split(/\\r?\\n/)\n        .map((line) => line.trim())\n        .find((line) => line.length > 0 && !line.startsWith(\"--\"))","sourceCodeStart":983,"sourceCodeEnd":1019,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/packages/db/src/backup-lib.ts#L983-L1019","documentation":"Error \"Failed to restore ${basename(opts.backupFile)} with psql: ${sanitizeRestoreErrorMessage(error)}\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at packages/db/src/backup-lib.ts:1001 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the sanitized psql error, fix the database/backup issue, and retry the restore.","Verify the backup file is a valid plain-SQL dump for this database."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}