diff --git a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
index 1755d01a60f1dbd66274026c8babcdd2b6f895cc..4b4cdc9e074b85c4a32606ea79c2f900126c3ddc 100644
--- a/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
+++ b/provider/notification-gc/src/main/java/org/opengroup/osdu/notification/provider/gcp/config/ExternalSubscriptionsManager.java
@@ -50,12 +50,17 @@ public class ExternalSubscriptionsManager {
     List<Subscription> cachedInfos = Optional.ofNullable(getExternalSubscriptions(dataPartitionId))
         .orElseThrow(() -> new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Server error", "OQM | Subscription info cache was not initialized"))
         .getSubscriptions();
-    List<Subscription> filteredCachedInfos = filterSubscriptionInfosByTopic(cachedInfos, subscriptionId, serviceTopic);
-    if (filteredCachedInfos.isEmpty()) {
-      return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, cachedInfos);
+    return getFilteredSubscription(cachedInfos, dataPartitionId, subscriptionId, serviceTopic);
+  }
+
+  private Subscription getFilteredSubscription(List<Subscription> subscriptions, String dataPartitionId,
+                                               String subscriptionId, String serviceTopic) {
+    List<Subscription> filteredInfos = filterSubscriptionInfosByTopic(subscriptions, subscriptionId, serviceTopic);
+    if (filteredInfos.isEmpty()) {
+      return sendGetSubscriptionRequest(dataPartitionId, subscriptionId, serviceTopic, subscriptions);
     } else {
-      log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredCachedInfos.size());
-      return filteredCachedInfos.get(0);
+      log.debug("Register client cache | `{}` subscriptions info found. The first was taken.", filteredInfos.size());
+      return filteredInfos.get(0);
     }
   }
 
@@ -72,7 +77,7 @@ public class ExternalSubscriptionsManager {
   private void reloadSubscriptionInfoCache(String dataPartitionId) {
     List<Subscription> subscriptionInfos = subscriptionHandler.getAllSubscriptionInfos(dataPartitionId);
     List<Subscription> enrichedSubscriptionInfos = subscriptionInfos.stream()
-        .map(subscription -> getSubscription(dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
+        .map(subscription -> getFilteredSubscription(subscriptionInfos, dataPartitionId, subscription.getNotificationId(), subscription.getTopic()))
         .collect(Collectors.toList());
     subscriptionInfoCache.put(dataPartitionId, ExternalSubscriptions.builder().subscriptions(enrichedSubscriptionInfos).build());
     log.debug("Subscription info cache PRELOADED for tenant: {}. Size is: {}.", dataPartitionId, enrichedSubscriptionInfos.size());
@@ -102,4 +107,4 @@ public class ExternalSubscriptionsManager {
         .filter(info -> serviceTopic.equals(info.getTopic()) && subscriptionId.equals(info.getNotificationId()))
         .collect(Collectors.toList());
   }
-}
+}
\ No newline at end of file