From d82c90a04dc17a3bf49eef78b5835d80e9ff9328 Mon Sep 17 00:00:00 2001 From: Lloyd Date: Tue, 24 Mar 2026 12:33:33 +0000 Subject: [PATCH] fix: MQTT schedule the reconnect timer before calling disconnect(), so by the time _on_broker_disconnected fires, the pending reconnect is already visible. --- repeater/data_acquisition/letsmesh_handler.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/repeater/data_acquisition/letsmesh_handler.py b/repeater/data_acquisition/letsmesh_handler.py index ffe78a1..e1b74f7 100644 --- a/repeater/data_acquisition/letsmesh_handler.py +++ b/repeater/data_acquisition/letsmesh_handler.py @@ -322,8 +322,9 @@ class _BrokerConnection: logger.info(f"JWT token expiring soon for {self.broker['name']}, refreshing...") self._running = False self._jwt_refresh_timer = None - self.client.disconnect() # Triggers clean disconnect, then reconnect via timer + self._schedule_reconnect(reason="JWT token expiry") + self.client.disconnect() # ====================================================================