paperclipai/paperclip · error

Unsafe database name: ${databaseName}

Error message

Unsafe database name: ${databaseName}

What it means

Identifier-safety guard in ensurePostgresDatabase: the database name is interpolated into SQL (CREATE DATABASE / connection handling), so anything outside a plain ASCII identifier pattern is rejected to prevent injection through the name.

Source

Thrown at packages/db/src/client.ts:906

      const insertValues: string[] = [];

      if (columnNames.has("hash")) {
        insertColumns.push(quoteIdentifier("hash"));
        insertValues.push(quoteLiteral(hash));
      }
      if (columnNames.has("name")) {
        insertColumns.push(quoteIdentifier("name"));
        insertValues.push(quoteLiteral(migrationFile));
      }
      if (columnNames.has("created_at")) {
        insertColumns.push(quoteIdentifier("created_at"));
        insertValues.push(quoteLiteral(String(folderMillis)));
      }

      if (insertColumns.length === 0) break;

      await sql.unsafe(
        `INSERT INTO ${qualifiedTable} (${insertColumns.join(", ")}) VALUES (${insertValues.join(", ")})`,
      );
      repairedMigrations.push(migrationFile);
    }
  } finally {
    await sql.end();
  }

  const refreshed = await inspectMigrations(url);
  return {
    repairedMigrations,
    remainingMigrations:
      refreshed.status === "needsMigrations" ? refreshed.pendingMigrations : [],
  };
}

async function discoverMigrationTableSchema(sql: ReturnType<typeof postgres>): Promise<string | null> {
  const rows = await sql<{ schemaName: string }[]>`
    SELECT n.nspname AS "schemaName"

View on GitHub (pinned to 01ad858492)

Solutions

  1. Use a database name matching the allowed pattern (no unsafe characters or traversal).
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/db/src/client.ts:826 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18). Data as JSON: /api/errors/d56a99da13745750. Report an issue: GitHub.