paperclipai/paperclip · error
Cannot seed worktree database because source…
Error message
Cannot seed worktree database because source local_encrypted secrets key was not found at ${sourceKeyFilePath}. What it means
Secrets-materialization guard during worktree seeding: the source instance uses local_encrypted secrets, and the master key file needed to decrypt/re-encrypt secrets for the new worktree does not exist at the resolved source path.
Solutions
- Restore the source local_encrypted secrets key file at the shown path before seeding the worktree database.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/worktree.ts:1074 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/f2c97686f91be6f3.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/worktree.ts:1090
encoding: "utf8",
mode: 0o600,
});
try {
chmodSync(input.targetKeyFilePath, 0o600);
} catch {
// best effort
}
return;
}
const sourceKeyFileOverride =
nonEmpty(input.sourceEnvEntries.PAPERCLIP_SECRETS_MASTER_KEY_FILE) ??
(allowProcessEnvFallback ? nonEmpty(process.env.PAPERCLIP_SECRETS_MASTER_KEY_FILE) : null);
const sourceConfiguredKeyPath = sourceKeyFileOverride ?? input.sourceConfig.secrets.localEncrypted.keyFilePath;
const sourceKeyFilePath = resolveRuntimeLikePath(sourceConfiguredKeyPath, input.sourceConfigPath);
if (!existsSync(sourceKeyFilePath)) {
throw new Error(
`Cannot seed worktree database because source local_encrypted secrets key was not found at ${sourceKeyFilePath}.`,
);
}
copyFileSync(sourceKeyFilePath, input.targetKeyFilePath);
try {
chmodSync(input.targetKeyFilePath, 0o600);
} catch {
// best effort
}
}
export async function ensureEmbeddedPostgres(
dataDir: string,
preferredPort: number,
options: { allowExisting?: boolean } = {},
): Promise<EmbeddedPostgresHandle> {
const moduleName = "embedded-postgres";View on GitHub (pinned to 01ad858492)