diff --git a/redis/src/storages/redis/impl/standalone_topology_holder.cpp b/redis/src/storages/redis/impl/standalone_topology_holder.cpp
index 284e8b3c8933..fb689780793e 100644
--- a/redis/src/storages/redis/impl/standalone_topology_holder.cpp
+++ b/redis/src/storages/redis/impl/standalone_topology_holder.cpp
@@ -21,6 +21,7 @@ StandaloneTopologyHolder::StandaloneTopologyHolder(
       create_node_watch_(ev_thread_, [this] {
           // NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDelete)
           CreateNode();
+          create_node_watch_.Start();
       }) {
     LOG_DEBUG() << "Created StandaloneTopologyHolder with " << conn.host << ":" << conn.port;
 }
@@ -177,6 +178,8 @@ void StandaloneTopologyHolder::CreateNode() {
                 return;
             }
             topology_holder->GetSignalNodeStateChanged()(host_port, state);
+            { std::lock_guard lock{topology_holder->mutex_}; }
+            topology_holder->cv_.NotifyAll();
         });
 
         NodesStorage nodes;
@@ -194,7 +197,6 @@ void StandaloneTopologyHolder::CreateNode() {
     }
 
     signal_topology_changed_(1);
-    cv_.NotifyAll();
 }
 
 void StandaloneTopologyHolder::UpdatePassword(const Password& password) {