diff --git a/nav2_recoveries/src/recovery_server.cpp b/nav2_recoveries/src/recovery_server.cpp
index 66693f5495752abcad9b56d921a3d77f3281734b..d2dc99660b23231f98dc000f1b26832f445d57d5 100644
--- a/nav2_recoveries/src/recovery_server.cpp
+++ b/nav2_recoveries/src/recovery_server.cpp
@@ -123,6 +123,10 @@ RecoveryServer::on_cleanup(const rclcpp_lifecycle::State & /*state*/)
     (*iter)->cleanup();
   }
 
+  recoveries_.clear();
+  transform_listener_.reset();
+  tf_.reset();
+
   return nav2_util::CallbackReturn::SUCCESS;
 }