diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp
index 5f4e99f38d6cbb3d901d41a87b4b150b615aa79e..ab7b86cd2409be09682a4c0d2d2764aea242683e 100644
--- a/src/dht_proxy_client.cpp
+++ b/src/dht_proxy_client.cpp
@@ -725,10 +725,10 @@ DhtProxyClient::onProxyInfos(const Json::Value& proxyInfos, const sa_family_t fa
             listenerRestartTimer_->async_wait(std::bind(&DhtProxyClient::restartListeners, this, std::placeholders::_1));
             if (not onConnectCallbacks_.empty()) {
                 std::lock_guard<std::mutex> lock(lockCallbacks_);
-                callbacks_.emplace_back([this] {
-                    while (not onConnectCallbacks_.empty()) {
-                        auto cb = std::move(onConnectCallbacks_.front());
-                        onConnectCallbacks_.pop();
+                callbacks_.emplace_back([cbs = std::move(onConnectCallbacks_)]() mutable {
+                    while (not cbs.empty()) {
+                        auto cb = std::move(cbs.front());
+                        cbs.pop();
                         cb();
                     }
                 });