diff --git a/src/public/app/desktop.js b/src/public/app/desktop.js index eb0ac2c21..ec27c9679 100644 --- a/src/public/app/desktop.js +++ b/src/public/app/desktop.js @@ -2,6 +2,7 @@ import appContext from "./components/app_context.js"; import utils from './services/utils.js'; import noteTooltipService from './services/note_tooltip.js'; import bundleService from "./services/bundle.js"; +import toastService from "./services/toast.js"; import noteAutocompleteService from './services/note_autocomplete.js'; import macInit from './services/mac_init.js'; import electronContextMenu from "./menus/electron_context_menu.js"; @@ -9,8 +10,16 @@ import DesktopLayout from "./layouts/desktop_layout.js"; import glob from "./services/glob.js"; bundleService.getWidgetBundlesByParent().then(widgetBundles => { - appContext.setLayout(new DesktopLayout(widgetBundles)); - appContext.start(); + appContext.setLayout(new DesktopLayout(widgetBundles)); + appContext.start() + .catch((e) => { + toastService.showPersistent({ + title: "Critical error", + icon: "alert", + message: `A critical error has occurred which prevents the client application from starting:\n\n${e.message}\n\nThis is most likely caused by a script failing in an unexpected way. Try starting the application in safe mode and addressing the issue.`, + }); + console.error("Critical error occured", e); + }); }); glob.setupGlobs();