diff --git a/gateway/run.py b/gateway/run.py index 9a6b5d98333..1cfbfdef055 100644 --- a/gateway/run.py +++ b/gateway/run.py @@ -9431,7 +9431,11 @@ class GatewayRunner(GatewayAuthorizationMixin, GatewayKanbanWatchersMixin, Gatew service_restart: bool = False, ) -> None: """Stop the gateway and disconnect all adapters.""" - self._stop_loop_liveness_guards() + # getattr-guard: shutdown-path tests build bare runners via + # object.__new__ that lack the liveness-guard machinery. + _stop_guards = getattr(self, "_stop_loop_liveness_guards", None) + if callable(_stop_guards): + _stop_guards() if restart: self._restart_requested = True self._restart_detached = detached_restart