diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp
index 9e139bc2e9113dfc507a2c525b7c0b9555e6bac9..68f40b1704854a36af3d7136f19a3889ad167337 100644
--- a/src/connectionmanager.cpp
+++ b/src/connectionmanager.cpp
@@ -1963,7 +1963,7 @@ ConnectionManager::connectivityChanged()
     for (const auto& ci : pimpl_->infos_.getConnectedInfos()) {
         std::lock_guard<std::mutex> lk(ci->mutex_);
         if (ci->socket_)
-            ci->socket_->sendBeacon();
+            dht::ThreadPool::io().run([s = ci->socket_] { s->sendBeacon(); });
     }
 }