diff --git a/src/dhtrunner.cpp b/src/dhtrunner.cpp
index 2a5ffc06c3b0d9016c80448938310604ec48741f..576d330440bee54a7c4b27b558a6a11cfd9fabfa 100644
--- a/src/dhtrunner.cpp
+++ b/src/dhtrunner.cpp
@@ -104,8 +104,11 @@ DhtRunner::run(const Config& config, Context&& context)
 {
     std::lock_guard<std::mutex> lck(dht_mtx);
     auto expected = State::Idle;
-    if (not running.compare_exchange_strong(expected, State::Running))
+    if (not running.compare_exchange_strong(expected, State::Running)) {
+        if (context.logger)
+            context.logger->w("[runner %p] Node is already running. Call join() first before calling run() again.");
         return;
+    }
 
     auto local4 = config.bind4;
     auto local6 = config.bind6;