diff --git a/src/dht.cpp b/src/dht.cpp
index 260a48540cfdef2672b3c920f3f08d7357d33851..9e2121aed1477ce04222bbd8124d449888e0050f 100644
--- a/src/dht.cpp
+++ b/src/dht.cpp
@@ -886,6 +886,7 @@ Dht::searchStep(std::shared_ptr<Search> sr)
                 for (const auto& a : sr->announce)
                     if (a.callback)
                         a_cbs.emplace_back(std::move(a.callback));
+                sr->announce.clear();
                 for (const auto& a : a_cbs)
                     a(false, {});
             }