paperclipai/paperclip · error · Error
Use either the positional source argument or --from, not…
Error message
Use either the positional source argument or --from, not both.
What it means
Redundant-source guard in worktree merge-history: the source worktree was named both as a positional argument and via --from, which could disagree; exactly one form is allowed.
Solutions
- Pass either the positional source argument or --from, not both.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at cli/src/commands/worktree.ts:3296 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/481bf596c685200f.
Report an issue: GitHub.
Appendix: source
Thrown at cli/src/commands/worktree.ts:4111
insertedIssues,
insertedComments,
insertedDocuments,
mergedDocuments,
insertedDocumentRevisions,
insertedAttachments,
skippedMissingAttachmentObjects,
insertedIssueIdentifiers,
};
});
}
export async function worktreeMergeHistoryCommand(sourceArg: string | undefined, opts: WorktreeMergeHistoryOptions): Promise<void> {
if (opts.apply && opts.dry) {
throw new Error("Use either --apply or --dry, not both.");
}
if (sourceArg && opts.from) {
throw new Error("Use either the positional source argument or --from, not both.");
}
const targetEndpoint = opts.to
? resolveWorktreeEndpointFromSelector(opts.to, { allowCurrent: true })
: resolveCurrentWorktreeEndpoint();
const sourceEndpoint = opts.from
? resolveWorktreeEndpointFromSelector(opts.from, { allowCurrent: true })
: sourceArg
? resolveWorktreeEndpointFromSelector(sourceArg, { allowCurrent: true })
: await promptForSourceEndpoint(targetEndpoint.rootPath);
if (path.resolve(sourceEndpoint.configPath) === path.resolve(targetEndpoint.configPath)) {
throw new Error("Source and target Paperclip configs are the same. Choose different --from/--to worktrees.");
}
const scopes = parseWorktreeMergeScopes(opts.scope);
const sourceHandle = await openConfiguredDb(sourceEndpoint.configPath);
const targetHandle = await openConfiguredDb(targetEndpoint.configPath);View on GitHub (pinned to 01ad858492)