diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 205d769acb76992aeba33fc54b7e7b8fbbdc8d06..6567935f432f0fa8895b6e1b7695deeadcf443f8 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -105,7 +105,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
                 context_client.SetLink(sub_links)
 
             # Update endpoint monitoring resources with UUIDs
-            device_with_uuids = context_client.GetDevice(device_id)
+            device_with_uuids = get_device(
+                context_client, device_id.device_uuid.uuid, rw_copy=False, include_endpoints=True,
+                include_components=False, include_config_rules=False)
             populate_endpoint_monitoring_resources(device_with_uuids, self.monitoring_loops)
 
             context_client.close()
@@ -121,23 +123,31 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
             context_client = ContextClient()
-            device = get_device(context_client, device_uuid, rw_copy=True)
+            device = get_device(
+                context_client, device_uuid, rw_copy=True, include_endpoints=False, include_components=False,
+                include_config_rules=True)
             if device is None:
                 raise NotFoundException('Device', device_uuid, extra_details='loading in ConfigureDevice')
 
             device_controller_uuid = get_device_controller_uuid(device)
             if device_controller_uuid is not None:
-                device = get_device(context_client, device_controller_uuid, rw_copy=True)
+                device = get_device(
+                    context_client, device_controller_uuid, rw_copy=True, include_endpoints=False,
+                    include_components=False, include_config_rules=True)
                 if device is None:
                     raise NotFoundException(
                         'Device', device_controller_uuid, extra_details='loading in ConfigureDevice')
 
+            device_uuid = device.device_id.device_uuid.uuid
             driver : _Driver = get_driver(self.driver_instance_cache, device)
             if driver is None:
                 msg = ERROR_MISSING_DRIVER.format(device_uuid=str(device_uuid))
                 raise OperationFailedException('ConfigureDevice', extra_details=msg)
 
             if DeviceDriverEnum.DEVICEDRIVER_P4 in device.device_drivers:
+                device = get_device(
+                    context_client, device_uuid, rw_copy=False, include_endpoints=True, include_components=False,
+                    include_config_rules=True)
                 # P4 Driver, by now, has no means to retrieve endpoints
                 # We allow defining the endpoints manually
                 update_endpoints(request, device)
@@ -179,7 +189,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
             context_client = ContextClient()
-            device = get_device(context_client, device_uuid, rw_copy=False)
+            device = get_device(
+                context_client, device_uuid, rw_copy=False, include_endpoints=False, include_config_rules=False,
+                include_components=False)
             if device is None:
                 raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')
             device_uuid = device.device_id.device_uuid.uuid
@@ -198,7 +210,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
             context_client = ContextClient()
-            device = get_device(context_client, device_uuid, rw_copy=False)
+            device = get_device(
+                context_client, device_uuid, rw_copy=False, include_endpoints=False, include_components=False,
+                include_config_rules=True)
             if device is None:
                 raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')
 
@@ -237,7 +251,9 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
             context_client = ContextClient()
-            device = get_device(context_client, device_uuid, rw_copy=False)
+            device = get_device(
+                context_client, device_uuid, rw_copy=False, include_endpoints=False, include_components=False,
+                include_config_rules=True)
             if device is None:
                 raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')