You nailed it, it looks like it was KlipperScreen. I’ll update the title. It’s interesting it happened at nearly the exact same time in the print both times.
From KlipperScreen.log
It looks like it happened soon after showing the screensaver both times, so it’s probably somehow related to that (which would explain the similar timing… The printer was in the other room when this happened / I promise I didn’t touch it / I don’t have a cat or anything to step on the screen 
2025-02-08 23:22:21,813 [screensaver.py:show()] - Showing Screensaver
2025-02-08 23:22:21,814 [screensaver.py:show()] - Hiding dialog
2025-02-08 23:23:46,371 [screensaver.py:close()] - Closing Screensaver
2025-02-08 23:23:46,385 [screen.py:wake_screen()] - Screen wake up
2025-02-08 23:23:46,494 [screensaver.py:close()] - Restoring Dialog <Gtk.Dialog object at 0x7f9002e980 (GtkDialog at 0x8d8f6f0)>
2025-02-08 23:23:46,657 [heatergraph.py:event_cb()] - Graph area: 269.1957092285156 390.9939270019531
2025-02-08 23:25:08,247 [KlippyGtk.py:remove_dialog()] - Removing Dialog
2025-02-08 23:25:45,815 [KlippyGtk.py:Dialog()] - Showing dialog Cancel (width=800, height=480)
2025-02-08 23:26:09,683 [KlippyGtk.py:remove_dialog()] - Removing Dialog
2025-02-08 23:26:09,683 [job_status.py:cancel_confirm()] - Canceling print
2025-02-08 23:26:09,689 [job_status.py:set_state()] - Changing job_status state from 'printing' to 'cancelling'
2025-02-08 23:26:09,696 [KlippyWebsocket.py:print_cancel()] - Sending printer.print.cancel
2025-02-08 23:26:09,982 [printer.py:change_state()] - Changing state from 'printing' to 'ready'
2025-02-08 23:26:09,983 [printer.py:change_state()] - Adding callback for state: ready
2025-02-08 23:26:10,000 [job_status.py:set_state()] - Changing job_status state from 'cancelling' to 'cancelled'
2025-02-08 23:26:10,197 [screen.py:set_screenblanking_timeout()] - Blanking timeout: 3600 DPMS:True
2025-02-09 00:42:57,814 [screensaver.py:show()] - Showing Screensaver
2025-02-09 00:43:40,191 [screensaver.py:close()] - Closing Screensaver
2025-02-09 00:43:40,201 [screen.py:wake_screen()] - Screen wake up
2025-02-09 00:43:47,416 [KlippyGtk.py:Dialog()] - Showing dialog Cancel (width=800, height=480)
2025-02-09 00:43:54,765 [KlippyGtk.py:remove_dialog()] - Removing Dialog
2025-02-09 00:43:54,766 [job_status.py:cancel_confirm()] - Canceling print
2025-02-09 00:43:54,776 [job_status.py:set_state()] - Changing job_status state from 'printing' to 'cancelling'
2025-02-09 00:43:54,784 [KlippyWebsocket.py:print_cancel()] - Sending printer.print.cancel
2025-02-09 00:43:55,062 [printer.py:change_state()] - Changing state from 'printing' to 'ready'
2025-02-09 00:43:55,063 [printer.py:change_state()] - Adding callback for state: ready
2025-02-09 00:43:55,079 [job_status.py:set_state()] - Changing job_status state from 'cancelling' to 'cancelled'
2025-02-09 00:43:55,257 [screen.py:set_screenblanking_timeout()] - Blanking timeout: 3600 DPMS:True
When I went to the printer this morning the screen wouldn’t wake up at all – it was black. I logged into the Mainsail interface and rebooted Pi and the print worked fine
. I’ll watch for this and see if it happens again.
Probably also doesn’t help that the cancel button, and the cancel confirmation are in exactly the same spot 