ask_yes_no() in python/vyos/utils/io.py retries on EOFError. When stdin is closed or not a terminal, input() raises EOFError on every retry, so the loop never terminates. The caller appears to hang while the message "Please respond with yes/y or no/n" repeats forever.
The most painful caller is commit-confirm: run from a script over ssh (ssh vyos@router "vbash /tmp/change.sh"), the session hangs at the Proceed prompt. This defeats commit-confirm in exactly the situation where an unattended revert matters most, remote automation against a device you can lose contact with.
Steps to reproduce:
echo -e 'source /opt/vyatta/etc/functions/script-template\nconfigure\nset interfaces dummy dum99\ncommit-confirm\nexit' > /tmp/t.sh ssh vyos@<router> "vbash /tmp/t.sh" Session never returns.
Expected: EOF resolves to the prompt's default answer, the same as an interactive user pressing Enter. All call sites with destructive consequences declare default=False, so EOF aborts them; default=True sites are commit-confirm/rollback and installer conveniences behind a False-gated disk confirmation.