From 6c08073d31c7628eaab1101c4e1075a6451f51d4 Mon Sep 17 00:00:00 2001 From: Li Xiang <54010254+lixiang007666@users.noreply.github.com> Date: Fri, 26 Dec 2025 14:09:30 +0800 Subject: [PATCH 1/3] Handle prompt_worker crashes with a critical log --- main.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 0e07a95da..79f8b742b 100644 --- a/main.py +++ b/main.py @@ -328,6 +328,14 @@ def setup_database(): logging.error(f"Failed to initialize database. Please ensure you have installed the latest requirements. If the error persists, please report this as in future the database will be required: {e}") +def prompt_worker_crashfast(*args, **kwargs): + try: + return prompt_worker(*args, **kwargs) + except Exception: + logging.critical("Fatal: prompt_worker crashed", exc_info=True) + os._exit(1) + + def start_comfyui(asyncio_loop=None): """ Starts the ComfyUI server using the provided asyncio event loop or creates a new one. @@ -367,7 +375,7 @@ def start_comfyui(asyncio_loop=None): prompt_server.add_routes() hijack_progress(prompt_server) - threading.Thread(target=prompt_worker, daemon=True, args=(prompt_server.prompt_queue, prompt_server,)).start() + threading.Thread(target=prompt_worker_crashfast, daemon=True, args=(prompt_server.prompt_queue, prompt_server,)).start() if args.quick_test_for_ci: exit(0) From e8d6b9a593d708eda57d0607659e1d575df9ae48 Mon Sep 17 00:00:00 2001 From: Li Xiang <54010254+lixiang007666@users.noreply.github.com> Date: Fri, 26 Dec 2025 22:12:14 +0800 Subject: [PATCH 2/3] Rename prompt_worker_crashfast to prompt_worker_failfast --- main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 79f8b742b..e8a34baaf 100644 --- a/main.py +++ b/main.py @@ -328,7 +328,7 @@ def setup_database(): logging.error(f"Failed to initialize database. Please ensure you have installed the latest requirements. If the error persists, please report this as in future the database will be required: {e}") -def prompt_worker_crashfast(*args, **kwargs): +def prompt_worker_failfast(*args, **kwargs): try: return prompt_worker(*args, **kwargs) except Exception: @@ -375,7 +375,7 @@ def start_comfyui(asyncio_loop=None): prompt_server.add_routes() hijack_progress(prompt_server) - threading.Thread(target=prompt_worker_crashfast, daemon=True, args=(prompt_server.prompt_queue, prompt_server,)).start() + threading.Thread(target=prompt_worker_failfast, daemon=True, args=(prompt_server.prompt_queue, prompt_server,)).start() if args.quick_test_for_ci: exit(0) From 2fc6ddd270920e3f5933f330d2b63b497c501085 Mon Sep 17 00:00:00 2001 From: Li Xiang <54010254+lixiang007666@users.noreply.github.com> Date: Fri, 26 Dec 2025 22:15:49 +0800 Subject: [PATCH 3/3] Update main.py --- main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.py b/main.py index e8a34baaf..88273751a 100644 --- a/main.py +++ b/main.py @@ -332,7 +332,7 @@ def prompt_worker_failfast(*args, **kwargs): try: return prompt_worker(*args, **kwargs) except Exception: - logging.critical("Fatal: prompt_worker crashed", exc_info=True) + logging.critical("Unhandled exception in prompt_worker; exiting process.", exc_info=True) os._exit(1)