diff --git a/rclpy/rclpy/action/server.py b/rclpy/rclpy/action/server.py index e3ded0eea..7bf423243 100644 --- a/rclpy/rclpy/action/server.py +++ b/rclpy/rclpy/action/server.py @@ -206,15 +206,18 @@ def executing(self) -> None: def succeed(self, response: Optional[ResultT] = None) -> None: self._update_state(_rclpy.GoalEvent.SUCCEED) - self._set_result(response) + if response is not None: + self._set_result(response) def abort(self, response: Optional[ResultT] = None) -> None: self._update_state(_rclpy.GoalEvent.ABORT) - self._set_result(response) + if response is not None: + self._set_result(response) def canceled(self, response: Optional[ResultT] = None) -> None: self._update_state(_rclpy.GoalEvent.CANCELED) - self._set_result(response) + if response is not None: + self._set_result(response) def destroy(self) -> None: with self._lock: