diff --git a/nav2_system_tests/src/system/tester_node.py b/nav2_system_tests/src/system/tester_node.py
index 901db89bf933c3952f38ce865a0c9a7fd7d3e3a9..6177f2e7cf0925111579a1d1809bf059239fd0b8 100755
--- a/nav2_system_tests/src/system/tester_node.py
+++ b/nav2_system_tests/src/system/tester_node.py
@@ -178,8 +178,8 @@ class NavTester(Node):
         req = ManageLifecycleNodes.Request()
         req.command = ManageLifecycleNodes.Request().SHUTDOWN
         future = mgr_client.call_async(req)
-        rclpy.spin_until_future_complete(self, future)
         try:
+            rclpy.spin_until_future_complete(self, future)
             future.result()
         except Exception as e:
             self.error_msg('Service call failed %r' % (e,))
@@ -191,8 +191,8 @@ class NavTester(Node):
         req = ManageLifecycleNodes.Request()
         req.command = ManageLifecycleNodes.Request().SHUTDOWN
         future = mgr_client.call_async(req)
-        rclpy.spin_until_future_complete(self, future)
         try:
+            rclpy.spin_until_future_complete(self, future)
             future.result()
         except Exception as e:
             self.error_msg('Service call failed %r' % (e,))
diff --git a/nav2_system_tests/src/waypoint_follower/tester.py b/nav2_system_tests/src/waypoint_follower/tester.py
index 6edaffe78a3c428547442f222653eabba164ddf9..be11dd53b3338a1c437629003912f305f19c021a 100755
--- a/nav2_system_tests/src/waypoint_follower/tester.py
+++ b/nav2_system_tests/src/waypoint_follower/tester.py
@@ -84,8 +84,12 @@ class WaypointFollowerTest(Node):
 
         self.info_msg('Sending goal request...')
         send_goal_future = self.action_client.send_goal_async(action_request)
-        rclpy.spin_until_future_complete(self, send_goal_future)
-        goal_handle = send_goal_future.result()
+        try:
+            rclpy.spin_until_future_complete(self, send_goal_future)
+            goal_handle = send_goal_future.result()
+        except Exception as e:
+            self.error_msg('Service call failed %r' % (e,))
+
         if not goal_handle.accepted:
             self.error_msg('Goal rejected')
             return False
@@ -94,9 +98,13 @@ class WaypointFollowerTest(Node):
         get_result_future = goal_handle.get_result_async()
 
         self.info_msg("Waiting for 'FollowWaypoints' action to complete")
-        rclpy.spin_until_future_complete(self, get_result_future)
-        status = get_result_future.result().status
-        result = get_result_future.result().result
+        try:
+            rclpy.spin_until_future_complete(self, get_result_future)
+            status = get_result_future.result().status
+            result = get_result_future.result().result
+        except Exception as e:
+            self.error_msg('Service call failed %r' % (e,))
+
         if status != GoalStatus.STATUS_SUCCEEDED:
             self.info_msg('Goal failed with status code: {0}'.format(status))
             return False