#483·enquirer

[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

javascript
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.0