heygen-com/hyperframes · warning

Aborted.

Error message

Aborted.

What it means

Generic Error 'Aborted.' thrown by the HeyGen API-key login flow when the user cancels the @clack/prompts password prompt (Esc, Ctrl+C, or the cancel button). It is intentionally thrown rather than process.exit'd so the single catch in runApiKeyLogin can record the abandonment (auth_login_failed: aborted) and exit cleanly. It is not a credentials failure.

Source

Thrown at packages/cli/src/commands/auth/login.ts:491

      reject(err);
    });
  });
}

async function promptForKey(): Promise<string> {
  const clack = await import("@clack/prompts");
  const value = await clack.password({
    message: "Enter HeyGen API key",
    validate: (v) => {
      if (!v || v.length < MIN_KEY_LENGTH) return "API key looks too short";
      if (!isHeaderSafe(v)) return "API key must not contain newline or control characters";
      return undefined;
    },
  });
  if (clack.isCancel(value)) {
    // Throw rather than exit here so the single catch in runApiKeyLogin records
    // the abandonment (auth_login_failed: aborted) and then exits.
    throw new Error("Aborted.");
  }
  return value.trim();
}

View on GitHub (pinned to c2996c8626)

Solutions

  1. If the cancellation was unintended, re-run `hyperframes auth login`.
  2. To skip the prompt entirely, set the API key via the documented env var (e.g. HEYGEN_API_KEY) instead of the interactive flow.
  3. Ensure a real TTY is attached when scripting login, or pre-seed the key non-interactively.

Example fix

# before: interactive prompt you can't answer in CI
$ hyperframes auth login   # Aborted.

# after: non-interactive env var
$ HEYGEN_API_KEY=... hyperframes <command>
Defensive patterns

Strategy: try-catch

Validate before calling

// Pre-check: skip the prompt entirely if a key is already available
if (!process.env.HEYGEN_API_KEY && !process.stdout.isTTY) {
  throw new Error('No API key and no TTY — set HEYGEN_API_KEY before running.');
}

Try / catch

try {
  await runApiKeyLogin();
} catch (err) {
  if (err instanceof Error && err.message === 'Aborted.') {
    // user cancelled — exit cleanly, not a failure
  }
}

Prevention

When it happens

Trigger: The user hits Esc/Ctrl+C at the 'Enter HeyGen API key' password prompt; the TTY is closed mid-input; a non-interactive context where clack resolves to a cancel symbol.

Common situations: Running `hyperframes auth login` by mistake and bailing out; a wrapper script that cannot supply a TTY; the user decides to paste the key via env var instead.

Related errors


AI-assisted analysis of heygen-com/hyperframes@c2996c8626 (2026-08-12). Data as JSON: /api/errors/b8398db2f04fbea7. Report an issue: GitHub.