diff --git a/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp b/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp index 4a3ebb8..d9c0a9b 100644 --- a/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp +++ b/behaviortree_ros2/include/behaviortree_ros2/bt_action_node.hpp @@ -427,6 +427,7 @@ template inline template inline void RosActionNode::cancelGoal() { + auto future_result = action_client_->async_get_result(goal_handle_); auto future_cancel = action_client_->async_cancel_goal(goal_handle_); if (callback_group_executor_.spin_until_future_complete(future_cancel, server_timeout_) != @@ -435,6 +436,13 @@ template inline RCLCPP_ERROR( node_->get_logger(), "Failed to cancel action server for [%s]", prev_action_name_.c_str()); } + + if (callback_group_executor_.spin_until_future_complete(future_result) != + rclcpp::FutureReturnCode::SUCCESS) + { + RCLCPP_ERROR( node_->get_logger(), "Failed to get result call failed :( for [%s]", + prev_action_name_.c_str()); + } }