From f34461bc0f45f5bf5ec5ca5a2fc827175159b225 Mon Sep 17 00:00:00 2001 From: Kush Makkapati Date: Sat, 28 Feb 2026 13:19:31 +0000 Subject: [PATCH 1/2] Handle heartbeat timeout and connection errors --- radio/app/drone.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/radio/app/drone.py b/radio/app/drone.py index 308c28e1a..6060643b2 100644 --- a/radio/app/drone.py +++ b/radio/app/drone.py @@ -148,12 +148,18 @@ def __init__( self.connectionError = str(e) return - initial_heartbeat = self.master.wait_heartbeat(timeout=5) - if initial_heartbeat is None: - self.logger.error("Heartbeat timed out after 5 seconds") - self.master.close() + try: + initial_heartbeat = self.master.wait_heartbeat(timeout=5) + if initial_heartbeat is None: + self.logger.error("Heartbeat timed out after 5 seconds") + self.master.close() + self.master = None + self.connectionError = "Could not connect to the drone." + return + except Exception as e: + self.logger.exception(traceback.format_exc()) self.master = None - self.connectionError = "Could not connect to the drone." + self.connectionError = str(e) return self.sendConnectionStatusUpdate(1) From e1055c3c7c3ba32d88ddd45e1cccc6a48e0f8c2c Mon Sep 17 00:00:00 2001 From: Kush Makkapati Date: Sat, 28 Feb 2026 13:31:14 +0000 Subject: [PATCH 2/2] Address copilot review comments --- radio/app/drone.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/radio/app/drone.py b/radio/app/drone.py index 6060643b2..52e6f7911 100644 --- a/radio/app/drone.py +++ b/radio/app/drone.py @@ -157,9 +157,15 @@ def __init__( self.connectionError = "Could not connect to the drone." return except Exception as e: - self.logger.exception(traceback.format_exc()) + self.logger.error( + "Error while waiting for heartbeat: " + str(e), exc_info=True + ) + if self.master is not None: + self.master.close() self.master = None - self.connectionError = str(e) + self.connectionError = ( + "An error occured while waiting for a heartbeat from the drone." + ) return self.sendConnectionStatusUpdate(1)