diff --git a/packageship/application/core/depend/be_depend.py b/packageship/application/core/depend/be_depend.py
index 04f5b02..06dbd44 100644
--- a/packageship/application/core/depend/be_depend.py
+++ b/packageship/application/core/depend/be_depend.py
@@ -45,6 +45,7 @@ class BeDepend(BaseDepend):
                 searched_pkg.add(pkg_info.get("src_name"))
                 binary_pkgs.update(set(pkg_info.get("subpacks", [])))
 
+        self._search_set.update(searched_pkg)
         if is_init:
             not_found_pkg = str(set(pkg_name_lst) - searched_pkg)
             self.log_msg = f"source packages {not_found_pkg} not found in {self.database}"
@@ -158,6 +159,8 @@ class BeDepend(BaseDepend):
         """
         next_search_pkgs = set()
         src_key = req_src_info["req_src_name"]
+        if src_key not in self._search_set:
+            next_search_pkgs.update(self.__get_subpacks([src_key]))
         if src_key not in self.source_dict:
             self.source_dict[src_key] = {
                 "name": src_key,
@@ -165,7 +168,6 @@ class BeDepend(BaseDepend):
                 "database": self.database,
                 "build": [dep_name],
             }
-            next_search_pkgs.update(self.__get_subpacks([src_key]))
         else:
             if dep_name not in self.source_dict[src_key]["build"]:
                 self.source_dict[src_key]["build"].append(dep_name)
