diff --git a/electrum/base_crash_reporter.py b/electrum/base_crash_reporter.py index 10886279d..5a77f33db 100644 --- a/electrum/base_crash_reporter.py +++ b/electrum/base_crash_reporter.py @@ -146,6 +146,7 @@ class EarlyExceptionsQueue: @classmethod def set_hook_as_ready(cls): + """Flush the queue and disable it for future exceptions.""" if cls._is_exc_hook_ready: return cls._is_exc_hook_ready = True diff --git a/electrum/gui/kivy/uix/dialogs/crash_reporter.py b/electrum/gui/kivy/uix/dialogs/crash_reporter.py index d78ee32d6..49b23b78d 100644 --- a/electrum/gui/kivy/uix/dialogs/crash_reporter.py +++ b/electrum/gui/kivy/uix/dialogs/crash_reporter.py @@ -180,6 +180,7 @@ class ExceptionHook(base.ExceptionHandler, Logger): Logger.__init__(self) self.main_window = main_window if not main_window.electrum_config.get(BaseCrashReporter.config_key, default=True): + EarlyExceptionsQueue.set_hook_as_ready() # flush already queued exceptions return # For exceptions in Kivy: base.ExceptionManager.add_handler(self) diff --git a/electrum/gui/qt/exception_window.py b/electrum/gui/qt/exception_window.py index e4c0ca1f3..3be2dc735 100644 --- a/electrum/gui/qt/exception_window.py +++ b/electrum/gui/qt/exception_window.py @@ -177,6 +177,7 @@ class Exception_Hook(QObject, Logger): @classmethod def maybe_setup(cls, *, config: 'SimpleConfig', wallet: 'Abstract_Wallet' = None) -> None: if not config.get(BaseCrashReporter.config_key, default=True): + EarlyExceptionsQueue.set_hook_as_ready() # flush already queued exceptions return if not cls._INSTANCE: cls._INSTANCE = Exception_Hook(config=config)