[bug] Strg+C results in uncaught exception
Author: JhonnyJasonCreated Jan 16, 2026Updated May 22, 2026
Linux 6.18.5-arch1-1 Node.js v25.3.0 Enquirer 2.4.1
Reproduction
import enquirer from "enquirer"
async function retrieveString(prompt) { try {
const resp = await enquirer.prompt({
type: "input",
name: "value",
message: "prompt"
})
console.log(`The input was: "${resp.value}"`)
} catch (err) {
console.log("Prompt Cancelled!")
process.exit(0)
}}
retrieveString("Enter a string:")Expectation
On Strg+C the prompty simply should become cancelled. There might be a catchable exception thrown from within the prompt.
Thus the example should give us: Prompt Cancelled!
Error
✖ Enter a string: ·
node:internal/readline/interface:564
throw new ERR_USE_AFTER_CLOSE('readline');
^
Error [ERR_USE_AFTER_CLOSE]: readline was closed
at Interface.pause (node:internal/readline/interface:564:13)
at Input.off [as stop] (/home/lenny/thingies/devloop/testing/externals/node_modules/.pnpm/[email protected]/node_modules/enquirer/lib/keypress.js:217:8)
at Object.onceWrapper (node:events:622:28)
at Input.emit (node:events:520:35)
at prompt.emit (/home/lenny/thingies/devloop/testing/externals/node_modules/.pnpm/[email protected]/node_modules/enquirer/index.js:128:14)
at Input.close (/home/lenny/thingies/devloop/testing/externals/node_modules/.pnpm/[email protected]/node_modules/enquirer/lib/prompt.js:182:10)
at Input.cancel (/home/lenny/thingies/devloop/testing/externals/node_modules/.pnpm/[email protected]/node_modules/enquirer/lib/prompt.js:161:16)
at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
at async Input.keypress (/home/lenny/thingies/devloop/testing/externals/node_modules/.pnpm/[email protected]/node_modules/enquirer/lib/prompt.js:46:14) {
code: 'ERR_USE_AFTER_CLOSE'
}
Node.js v25.3.0Source: enquirer/enquirer