I ran the following commands on my phone in termux and in Kitty on my PC 10 times each and record the results. I did it multiple times because the results seem random. ./src/emacs --fg-daemon -Q ./lib-src/emacsclient path/to/no-perms # in a separate terminal, 10 times Phone + Termux: 9 out of 10 times, I got the expected results where the terminal was not broken and I saw an error message. on the 10th time there was some weird behavior, but I haven't been able to reproduce it and I don't remember what happened. PC + Kitty: there were no crashes meaning the terminal wasn't broken anymore. but 6 out of 10 times the error message didn't print. sometimes all I saw was "waiting for emacs..." and some other times all I saw was "...". the other four times was expected behavior colon the error message printed and the terminal wasn't broken. Note: I have a slightly different environment on my phone compared to the first time. when I first reported the bug I was using the emacs and emacsclient programs located on my phone. this time I used the modified emacs and emacsclient from my desktop over SSH. I don't know if that changed the results. But the bug with unmodified emacs happens just the same over SSH as with emacs on my phone. On Mon, May 22, 2023, 09:30 Eli Zaretskii wrote: > > From: Adam Ibrahim > > Date: Sun, 21 May 2023 14:57:03 -0400 > > > > output of `ls -l`: > > > > ls -l no-perms > > ---------- 1 u0_a331 u0_a331 0 May 21 14:27 no-perms > > > > commands used: > > > > emacs --fg-daemon -Q > > emacsclient no-perms # in a separate terminal > > > > what stops working: when I type, the letters I type don't appear in the > terminal anymore. nothing is > > echoed back to me. stuff still happens, and I can enter commands, but I > can't see anything. And the > > terminal width seems screwed up. like things that should get indented, > they don't look right. > > Thanks. Please try the patch below and see if it solves the problem > without adding any new ones. > > diff --git a/lisp/server.el b/lisp/server.el > index eaf24a770e4..7e35eaa6176 100644 > --- a/lisp/server.el > +++ b/lisp/server.el > @@ -1138,6 +1138,11 @@ server-process-filter > (server-log "Authentication failed" proc) > (server-send-string > proc (concat "-error " (server-quote-arg "Authentication failed"))) > + (unless (eq system-type 'windows-nt) > + (let ((terminal (process-get proc 'terminal))) > + ;; Only delete the terminal if it is non-nil. > + (when (and terminal (eq (terminal-live-p terminal) t)) > + (delete-terminal terminal)))) > ;; Before calling `delete-process', give emacsclient time to > ;; receive the error string and shut down on its own. > (sit-for 1) > @@ -1459,6 +1464,11 @@ server-return-error > proc (concat "-error " (server-quote-arg > (error-message-string err)))) > (server-log (error-message-string err) proc) > + (unless (eq system-type 'windows-nt) > + (let ((terminal (process-get proc 'terminal))) > + ;; Only delete the terminal if it is non-nil. > + (when (and terminal (eq (terminal-live-p terminal) t)) > + (delete-terminal terminal)))) > ;; Before calling `delete-process', give emacsclient time to > ;; receive the error string and shut down on its own. > (sit-for 5) >