diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 6004194..a6c86c6 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -107,7 +107,8 @@
     BMCWEB_ROUTE(app, "/subscribe")
         .privileges({{"Login"}})
         .websocket()
-        .onopen([&](crow::websocket::Connection& conn) {
+        .onopen([&](crow::websocket::Connection& conn,
+                    const std::shared_ptr<bmcweb::AsyncResp>&) {
             BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
             sessions[&conn] = DbusWebsocketSession();
         })
diff --git a/include/kvm_websocket.hpp b/include/kvm_websocket.hpp
index 46443b9..a9dc8ea 100644
--- a/include/kvm_websocket.hpp
+++ b/include/kvm_websocket.hpp
@@ -161,7 +161,8 @@
     BMCWEB_ROUTE(app, "/kvm/0")
         .privileges({{"ConfigureComponents", "ConfigureManager"}})
         .websocket()
-        .onopen([](crow::websocket::Connection& conn) {
+        .onopen([](crow::websocket::Connection& conn,
+                   const std::shared_ptr<bmcweb::AsyncResp>&) {
             BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
 
             if (sessions.size() == maxSessions)
diff --git a/include/nbd_proxy.hpp b/include/nbd_proxy.hpp
index 85fb2d4..7b90e90 100644
--- a/include/nbd_proxy.hpp
+++ b/include/nbd_proxy.hpp
@@ -252,15 +252,17 @@
 {
     BMCWEB_ROUTE(app, "/nbd/<str>")
         .websocket()
-        .onopen([](crow::websocket::Connection& conn) {
+        .onopen([](crow::websocket::Connection& conn,
+                   const std::shared_ptr<bmcweb::AsyncResp>& asyncResp) {
             BMCWEB_LOG_DEBUG << "nbd-proxy.onopen(" << &conn << ")";
 
             auto getUserInfoHandler =
-                [&conn](const boost::system::error_code ec,
-                        boost::container::flat_map<
-                            std::string, std::variant<bool, std::string,
-                                                      std::vector<std::string>>>
-                            userInfo) {
+                [&conn, asyncResp](
+                    const boost::system::error_code ec,
+                    boost::container::flat_map<
+                        std::string, std::variant<bool, std::string,
+                                                  std::vector<std::string>>>
+                        userInfo) {
                     if (ec)
                     {
                         BMCWEB_LOG_ERROR << "GetUserInfo failed...";
@@ -300,7 +302,7 @@
                         return;
                     }
 
-                    auto openHandler = [&conn](
+                    auto openHandler = [&conn, asyncResp](
                                            const boost::system::error_code ec,
                                            const dbus::utility::
                                                ManagedObjectType& objects) {
diff --git a/include/obmc_console.hpp b/include/obmc_console.hpp
index dab9521..478649a 100644
--- a/include/obmc_console.hpp
+++ b/include/obmc_console.hpp
@@ -119,7 +119,8 @@
     BMCWEB_ROUTE(app, "/console0")
         .privileges({{"ConfigureComponents", "ConfigureManager"}})
         .websocket()
-        .onopen([](crow::websocket::Connection& conn) {
+        .onopen([](crow::websocket::Connection& conn,
+                   const std::shared_ptr<bmcweb::AsyncResp>&) {
             BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
 
             sessions.insert(&conn);
diff --git a/include/vm_websocket.hpp b/include/vm_websocket.hpp
index 08de90e..34ef82e 100644
--- a/include/vm_websocket.hpp
+++ b/include/vm_websocket.hpp
@@ -160,7 +160,8 @@
     BMCWEB_ROUTE(app, "/vm/0/0")
         .privileges({{"ConfigureComponents", "ConfigureManager"}})
         .websocket()
-        .onopen([](crow::websocket::Connection& conn) {
+        .onopen([](crow::websocket::Connection& conn,
+                   const std::shared_ptr<bmcweb::AsyncResp>&) {
             BMCWEB_LOG_DEBUG << "Connection " << &conn << " opened";
 
             if (session != nullptr)
