diff --git a/gso/schedules/validate_subscriptions.py b/gso/schedules/validate_subscriptions.py
index 9e79ec91cabda776762147bd0b86226fe8256879..4a68b6f00810cd9f2c8f46ef811068b7534af3d9 100644
--- a/gso/schedules/validate_subscriptions.py
+++ b/gso/schedules/validate_subscriptions.py
@@ -6,7 +6,7 @@ from orchestrator.services.subscriptions import TARGET_DEFAULT_USABLE_MAP, WF_US
 from orchestrator.targets import Target
 
 from gso.schedules.scheduling import CronScheduleConfig, scheduler
-from gso.services.subscriptions import get_insync_subscriptions
+from gso.services.subscriptions import get_active_insync_subscriptions
 from gso.worker import celery
 
 logger = structlog.get_logger(__name__)
@@ -16,7 +16,7 @@ logger = structlog.get_logger(__name__)
 @scheduler(CronScheduleConfig(name="Subscriptions Validator", minute="10", hour="0"))
 def validate_subscriptions() -> None:
     """Validate all subscriptions using their corresponding validation workflow."""
-    subscriptions = get_insync_subscriptions()
+    subscriptions = get_active_insync_subscriptions()
     if not subscriptions:
         logger.info("No subscriptions to validate")
         return
diff --git a/gso/services/subscriptions.py b/gso/services/subscriptions.py
index 03e4f1085663f981424a6b39526b6113accbd3b6..0c4029633b1334b05f540a4ab10ca6eb730eed84 100644
--- a/gso/services/subscriptions.py
+++ b/gso/services/subscriptions.py
@@ -210,6 +210,15 @@ def get_insync_subscriptions() -> list[SubscriptionTable]:
     return SubscriptionTable.query.join(ProductTable).filter(SubscriptionTable.insync.is_(True)).all()
 
 
+def get_active_insync_subscriptions() -> list[SubscriptionTable]:
+    """Retrieve all subscriptions that are currently active and in sync."""
+    return (
+        SubscriptionTable.query.join(ProductTable)
+        .filter(SubscriptionTable.insync.is_(True), SubscriptionTable.status.is_(SubscriptionLifecycle.ACTIVE))
+        .all()
+    )
+
+
 def get_site_by_name(site_name: str) -> Site:
     """Get a site by its name.