diff --git a/vendor/magento/module-shared-catalog/Model/SharedCatalogAssignment.php b/vendor/magento/module-shared-catalog/Model/SharedCatalogAssignment.php
index 6ac24b956ed7..732de3d21f2e 100644
--- a/vendor/magento/module-shared-catalog/Model/SharedCatalogAssignment.php
+++ b/vendor/magento/module-shared-catalog/Model/SharedCatalogAssignment.php
@@ -121,7 +121,6 @@ public function unassignProductsForCategories(
         array $assignCategoriesIds
     ) {
         $products = $this->getUnassignProductsByCategoryIds(
-            $sharedCatalogId,
             $unassignCategoriesIds,
             $assignCategoriesIds
         );
@@ -268,22 +267,24 @@ public function getAssignProductsByCategoryIds(array $assignCategoriesIds): arra
     /**
      * Get products to be unassigned from shared catalog when categories are unassigned.
      *
-     * @param int $sharedCatalogId
      * @param array $unassignCategoriesIds
      * @param array $assignedCategoriesIds
      * @return array
      */
     private function getUnassignProductsByCategoryIds(
-        $sharedCatalogId,
         array $unassignCategoriesIds,
         array $assignedCategoriesIds
     ) {
-        $sharedCatalog = $this->sharedCatalogRepository->get($sharedCatalogId);
+        if (empty($unassignCategoriesIds)) {
+            return [];
+        }
         $assignedCategoriesIds = array_diff($assignedCategoriesIds, $unassignCategoriesIds);
+        if (empty($assignedCategoriesIds)) {
+            return $this->getProductsByCategoryIds($unassignCategoriesIds);
+        }
         $unassignProducts = [];
-        $this->searchCriteriaBuilder->addFilter('customer_group_id', $sharedCatalog->getCustomerGroupId());
-        $searchCriteria = $this->searchCriteriaBuilder->create();
-        foreach ($this->sharedCatalogProductItemRepository->getList($searchCriteria)->getItems() as $product) {
+        $products = $this->getProductsByCategoryIds($unassignCategoriesIds);
+        foreach ($products as $product) {
             $product = $this->sharedCatalogInvalidation->checkProductExist($product->getSku());
             if (empty(array_intersect($product->getCategoryIds(), $assignedCategoriesIds))) {
                 $unassignProducts[] = $product;

