paperclipai/paperclip · error

Aborted.

Error message

Aborted.

What it means

The interactive dangerous-action confirmation was answered no (or aborted), so the command stops by user choice; the catch-all for declined confirmation prompts.

Solutions

  1. Re-run the command and confirm the prompt (or pass --yes where supported).
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at cli/src/commands/client/skills.ts:1019 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/999ec1de78dc558d. Report an issue: GitHub.

Appendix: 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 120ae5428f)