diff --git a/src/service/service/task_scheduler/TaskScheduler.py b/src/service/service/task_scheduler/TaskScheduler.py
index 2c984013ff45a534ca00c8428ff028a16ef7fb6a..5f2bc90405cec790cc16a86291c476a4c421d263 100644
--- a/src/service/service/task_scheduler/TaskScheduler.py
+++ b/src/service/service/task_scheduler/TaskScheduler.py
@@ -206,7 +206,11 @@ class TasksScheduler:
                 classes_service_handlers = self._executor.get_service_handlers(
                     connection, service, **service_handler_settings
                 )
-                if len(classes_service_handlers) != 1:
+                # TODO: improve to select different service handlers when needed
+                # By now, assume a single service handler is retrieved for all the
+                # device types in the path, i.e., all entries carry the same
+                # service handler, so we choose the first one retrieved.
+                if len(classes_service_handlers) < 1:
                     raise Exception('Unsupported case: {:s}'.format(str(classes_service_handlers)))
                 class_service_handler,_ = classes_service_handlers.values()[0]
             if class_service_handler.check_media_channel(connection_uuid):