diff --git a/app/desktop/desktop.py b/app/desktop/desktop.py index 01458e48a..2323ccbba 100644 --- a/app/desktop/desktop.py +++ b/app/desktop/desktop.py @@ -5,6 +5,7 @@ setup_certs() import contextlib +import logging import os import sys import tkinter as tk @@ -21,6 +22,8 @@ from app.desktop.desktop_server import ThreadedServer, server_config from app.desktop.util.resource_limits import setup_resource_limits +logger = logging.getLogger(__name__) + # Set writeable cache directories as soon as we start os.environ["LLAMA_INDEX_CACHE_DIR"] = os.path.join( Config.settings_dir(), "cache", "llama_index_cache" @@ -122,8 +125,17 @@ def run_tray(self): self.tray = KilnTray("kiln", tray_image, "Kiln", menu) - # running detached since we use tk mainloop to get events from dock icon - self.tray.run_detached() + try: + # running detached since we use tk mainloop to get events from dock icon + self.tray.run_detached() + except Exception: + logger.error("Error running tray", exc_info=True) + # Tray not starting on MacOS or Windows is critical. + # Let Linux continue to start the app as tray is more fragmented there and requires system deps. + if sys.platform in ["darwin", "win32"]: + raise + else: + self.tray = None def close_splash(self): try: