paperclipai/paperclip · error

Migration safety check found

Error message

Migration safety check found ${findings.length} new finding(s).

What it means

Error "Migration safety check found ${findings.length} new finding(s)." thrown in paperclipai/paperclip.

Solutions

  1. Review and resolve the listed migration safety findings before committing.
  2. Adjust the migration to avoid the flagged unsafe operations.

When it happens

Trigger: Thrown at packages/db/src/check-migration-safety.ts:1033 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/6524c77a9caa9b71. Report an issue: GitHub.

Appendix: source

Thrown at packages/db/src/check-migration-safety.ts:1033

  ].join("\n");
}

function formatNewFindings(findings: readonly MigrationSafetyFinding[]): string {
  const rendered = findings.map(formatFinding).join("\n\n");
  return [
    `Migration safety check found ${findings.length} new finding(s).`,
    "Add a same-migration support index, use CONCURRENTLY where applicable, or add",
    "`-- paperclip:migration-safety-ignore <rule>: <reason>` next to the statement.",
    "",
    rendered,
  ].join("\n");
}

async function main() {
  const result = analyzeMigrationSafety(await readMigrations());

  if (result.newFindings.length > 0) {
    throw new Error(formatNewFindings(result.newFindings));
  }

  const staleSuffix = result.staleBaselineIds.length > 0
    ? ` (${result.staleBaselineIds.length} stale baseline id(s) ignored)`
    : "";
  console.log(
    `Migration safety check passed: ${result.baselineFindings.length} historical finding(s) covered by baseline${staleSuffix}.`,
  );
}

if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
  try {
    await main();
  } catch (error) {
    const detail = error instanceof Error ? error.message : String(error);
    console.error(`${basename(process.argv[1])}: ${detail}`);
    process.exitCode = 1;
  }

View on GitHub (pinned to 120ae5428f)