You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since Deno 2.7.5, calling @inquirer/prompts's select() more than once in sequence causes the process to hang. The first prompt works fine, but the second prompt never receives input. This worked correctly in 2.7.1.
Select an option for Q1 and press Enter: Q2 appears but hangs, ignoring all keyboard input.
Versions
Broken: Deno 2.7.5 (both deno run and deno compile)
Working: Deno 2.7.1
Tested on macOS 26.1 (aarch64).
Likely cause
This is probably a side effect of one (or both) of:
fix(ext/node): make TTY stdout/stderr indestructible #32530 — made TTY stdout/stderr indestructible. @inquirer/core creates a MuteStream piped to process.stdout for each prompt and calls output.end() + rl.close() on completion. The indestructible stdout change may leave the stream or pipe in a state that prevents the next readline interface from receiving stdin events.
Both PRs were shipped in 2.7.5, which lines up with the regression window.
Context
This breaks any CLI tool that uses @inquirer/prompts for multi-step interactive flows. We hit this in Fedify CLI where fedify init asks several questions in sequence—the Homebrew distribution (built with deno compile) hangs after the first prompt (see fedify-dev/fedify#623).
Since Deno 2.7.5, calling @inquirer/prompts's
select()more than once in sequence causes the process to hang. The first prompt works fine, but the second prompt never receives input. This worked correctly in 2.7.1.Reproduction
Select an option for Q1 and press Enter: Q2 appears but hangs, ignoring all keyboard input.
Versions
deno runanddeno compile)Tested on macOS 26.1 (aarch64).
Likely cause
This is probably a side effect of one (or both) of:
MuteStreampiped toprocess.stdoutfor each prompt and callsoutput.end()+rl.close()on completion. The indestructible stdout change may leave the stream or pipe in a state that prevents the next readline interface from receiving stdin events.ERR_USE_AFTER_CLOSEguard toreadline.write(). This could interfere with cleanup between consecutive prompts if a write lands afterclose().Both PRs were shipped in 2.7.5, which lines up with the regression window.
Context
This breaks any CLI tool that uses @inquirer/prompts for multi-step interactive flows. We hit this in Fedify CLI where
fedify initasks several questions in sequence—the Homebrew distribution (built withdeno compile) hangs after the first prompt (see fedify-dev/fedify#623).