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
- If the cancellation was unintended, re-run `hyperframes auth login`.
- To skip the prompt entirely, set the API key via the documented env var (e.g. HEYGEN_API_KEY) instead of the interactive flow.
- 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
- Prefer setting HEYGEN_API_KEY (env) for non-interactive / CI runs.
- Ensure a real TTY when invoking the interactive login flow.
- Treat 'Aborted.' as user cancel, not an auth failure.
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
- --source must be 'sparticuz' or 'chrome-headless-shell' (got
- Unknown flag: ${arg}
- --executable-path requires a path
- --launch-args-json requires a path
- Unknown argument: ${arg}
AI-assisted analysis of heygen-com/hyperframes@c2996c8626 (2026-08-12).
Data as JSON: /api/errors/b8398db2f04fbea7.
Report an issue: GitHub.