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

  1. If you intended to proceed, re-run and type exactly `yes` at the prompt.
  2. If you intended to cancel, this is expected behavior — no action was taken.
  3. 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

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


AI-assisted analysis of paperclipai/paperclip@67001ec6eb (2026-08-12). Data as JSON: /api/errors/999ec1de78dc558d. Report an issue: GitHub.