I find that, in a loop like: (unwind-protect (while waiting-for-output (accept-process-output process)) (if waiting-for-output (warn "accept-process-output exited non-locally!"))) i.e. waiting for an async process (iPython), accept-process-output (emacs 27.2) sometimes exits non-locally. I checked for any signals that might cause this (none), and then I suspected re-entering a-p-e could throw, so guarded against that, but still no luck. Does anyone know any other reasons that accept-process-output would (occasionally) exit non-locally? Is this expected?