diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 0258380a14df03204a7cb77c5a2d8b39aa3c64cc..be40e64ecd25a5c46c23d5ec0a73a2484b65691d 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -109,7 +109,7 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
             if device is None:
                 raise NotFoundException('Device', device_uuid, extra_details='loading in ConfigureDevice')
 
-            driver : _Driver = self.driver_instance_cache.get(device_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)
@@ -150,6 +150,11 @@ 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)
+            if device is None:
+                raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')
+            device_uuid = device.device_id.device_uuid.uuid
+
             self.monitoring_loops.remove_device(device_uuid)
             self.driver_instance_cache.delete(device_uuid)
             context_client.RemoveDevice(request)
@@ -163,7 +168,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
-            driver : _Driver = self.driver_instance_cache.get(device_uuid)
+            context_client = ContextClient()
+            device = get_device(context_client, device_uuid, rw_copy=False)
+            if device is None:
+                raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')
+
+            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('GetInitialConfig', extra_details=msg)
@@ -197,7 +207,12 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
 
         self.mutex_queues.wait_my_turn(device_uuid)
         try:
-            driver : _Driver = self.driver_instance_cache.get(device_uuid)
+            context_client = ContextClient()
+            device = get_device(context_client, device_uuid, rw_copy=False)
+            if device is None:
+                raise NotFoundException('Device', device_uuid, extra_details='loading in DeleteDevice')
+
+            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('MonitorDeviceKpi', extra_details=msg)