paperclipai/paperclip · info · Error
Aborted.
Error message
Aborted.
What it means
Thrown by confirmDangerousAction() when the interactive prompt received an answer that is not exactly 'yes' (case-insensitive, trimmed). It is the user-driven cancellation path: the destructive action is aborted because confirmation was withheld. It exits with a non-zero code via handleCommandError.
Source
Thrown at cli/src/commands/client/skills.ts:1019
async function readStdin(): Promise<string> {
const chunks: Buffer[] = [];
for await (const chunk of process.stdin) {
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
}
return Buffer.concat(chunks).toString("utf8");
}
async function confirmDangerousAction(yes: boolean | undefined, message: string): Promise<void> {
if (yes) return;
if (!process.stdin.isTTY || !process.stdout.isTTY) {
throw new Error("This command requires --yes when not running in an interactive terminal.");
}
const rl = createInterface({ input, output });
try {
const answer = (await rl.question(`${message} Type yes to continue: `)).trim().toLowerCase();
if (answer !== "yes") {
throw new Error("Aborted.");
}
} finally {
rl.close();
}
}
View on GitHub (pinned to 67001ec6eb)
Solutions
- If you intended to proceed, re-run and type exactly `yes` at the prompt.
- If you intended to cancel, this is expected behavior — no action was taken.
- For automation, pass --yes to skip the prompt entirely.
Defensive patterns
Strategy: try-catch
Try / catch
try {
await run(["skills", "remove", ref]);
} catch (err) {
if (err instanceof Error && err.message === "Aborted.") {
// user declined — exit gracefully without treating as a fault
process.exit(0);
}
throw err;
} Prevention
- Treat 'Aborted.' as expected cancellation, not a hard error, in wrappers.
- For non-interactive runs, pass --yes to skip the prompt entirely.
- Type exactly 'yes' (case-insensitive) to confirm at the prompt.
When it happens
Trigger: At the `Type yes to continue:` prompt for reset/remove/clear, the user types anything other than 'yes' (no, n, empty, or a typo) and presses enter.
Common situations: User changes their mind at the prompt, accidental enter key, or a wrapper that pipes a non-'yes' answer.
Related errors
- Deletion requires --yes.
- Refusing to delete without --yes
- Deletion requires --confirm <secretId> matching the secret I
- This command requires --yes when not running in an interacti
- Export cancelled.
AI-assisted analysis of paperclipai/paperclip@67001ec6eb (2026-08-12).
Data as JSON: /api/errors/999ec1de78dc558d.
Report an issue: GitHub.