diff --git a/backend/app/main.py b/backend/app/main.py
index d9bbf6230..65e992ebd 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -11,6 +11,8 @@ from logging.handlers import RotatingFileHandler
def _start_error_server(missing_packages: list):
"""Start a minimal HTTP server to display dependency errors in browser."""
import os
+ import signal
+ import threading
from http.server import BaseHTTPRequestHandler, HTTPServer
packages_html = "".join(f"
{p}" for p in missing_packages)
@@ -75,11 +77,17 @@ def _start_error_server(missing_packages: list):
print(f"\nStarting error server on http://0.0.0.0:{port}")
print("Visit this URL in your browser to see the error details.\n")
- try:
- server = HTTPServer(("0.0.0.0", port), ErrorHandler)
- server.serve_forever()
- except KeyboardInterrupt:
- pass
+ server = HTTPServer(("0.0.0.0", port), ErrorHandler)
+
+ def shutdown(signum, frame):
+ print("\nShutting down error server...")
+ threading.Thread(target=server.shutdown).start()
+
+ signal.signal(signal.SIGTERM, shutdown)
+ signal.signal(signal.SIGINT, shutdown)
+
+ server.serve_forever()
+ raise SystemExit(1)
def check_dependencies():