diff --git a/devices/APSCTL.py b/devices/APSCTL.py
index f1ea50f303e608230aaeba346dbd99bde8480773..62bc56f859566bc562ede8da27c7d9da428882ca 100644
--- a/devices/APSCTL.py
+++ b/devices/APSCTL.py
@@ -166,7 +166,9 @@ class APSCTL(hardware_device):
             try:
                 i.set_comm_client(self.OPCua_client)
             except:
-                self.debug_stream("error in getting APSCTL attribute: {} from client".format(i))
+                # use the pass function instead of setting read/write fails
+                i.set_pass_func(self.OPCua_client)
+                self.error_stream("error in getting APSCTL attribute: {} from client".format(i))
 
         self.OPCua_client.start()
 
diff --git a/devices/PCC.py b/devices/PCC.py
index ff0ed0914f43272ab195b8a55f8f550e7fdd3ceb..bb35a0b6c2d5c6ba6036bf22bda89f1986db262d 100644
--- a/devices/PCC.py
+++ b/devices/PCC.py
@@ -140,12 +140,14 @@ class PCC(hardware_device):
         self.OPCua_client = OPCUAConnection("opc.tcp://{}:{}/".format(self.OPC_Server_Name, self.OPC_Server_Port), "http://lofar.eu",
                                             self.OPC_Time_Out, self.Fault, self)
 
-        # map the attributes to the OPC ua comm client
+        # map an access helper class
         for i in self.attr_list():
             try:
                 i.set_comm_client(self.OPCua_client)
             except:
-                pass
+                # use the pass function instead of setting read/write fails
+                i.set_pass_func(self.OPCua_client)
+                self.error_stream("error in getting PCC attribute: {} from client".format(i))
 
         self.OPCua_client.start()
 
diff --git a/devices/SDP.py b/devices/SDP.py
index 19f21fc9380e57129ca89ea51396c39f72faf100..0e69a4362da4d478113d78628fcf66586eae14ba 100644
--- a/devices/SDP.py
+++ b/devices/SDP.py
@@ -139,7 +139,9 @@ class SDP(hardware_device):
             try:
                 i.set_comm_client(self.OPCua_client)
             except:
-                self.debug_stream("error in getting SDP attribute: {} from client".format(i))
+                # use the pass function instead of setting read/write fails
+                i.set_pass_func(self.OPCua_client)
+                self.error_stream("error in getting SDP attribute: {} from client".format(i))
 
         self.OPCua_client.start()
 
diff --git a/devices/SNMP.py b/devices/SNMP.py
index 8b5d4a21c85cebbc562bd22baf5afec5e37b86d9..c9a8337d5c8ed684ecd6c3eb9e4fbf2f15f06ea7 100644
--- a/devices/SNMP.py
+++ b/devices/SNMP.py
@@ -88,9 +88,14 @@ class SNMP(hardware_device):
         # set up the SNMP ua client
         self.snmp_manager = SNMP_client(self.SNMP_community, self.SNMP_host, self.SNMP_timeout, self.Fault, self)
 
-        # map the attributes to the OPC ua comm client
+        # map an access helper class
         for i in self.attr_list():
-            i.set_comm_client(self.snmp_manager)
+            try:
+                i.set_comm_client(self.snmp_manager)
+            except:
+                # use the pass function instead of setting read/write fails
+                i.set_pass_func(self.snmp_manager)
+                self.error_stream("error in getting SNMP attribute: {} from client".format(i))
 
         self.snmp_manager.start()
 
diff --git a/devices/ini_device.py b/devices/ini_device.py
index 0b81611830e9ed14e76141ee583a1e6a7ddb8c60..6be6b1a6149a0d5402eed537b4f7783b4253a691 100644
--- a/devices/ini_device.py
+++ b/devices/ini_device.py
@@ -108,7 +108,12 @@ class ini_device(hardware_device):
 
         # map an access helper class
         for i in self.attr_list():
-            i.set_comm_client(self.ini_client)
+            try:
+                i.set_comm_client(self.ini_client)
+            except:
+                # use the pass function instead of setting read/write fails
+                i.set_pass_func(self.ini_client)
+                self.error_stream("error in getting ini attribute: {} from client".format(i))
 
         self.ini_client.start()
 
diff --git a/devices/util/attribute_wrapper.py b/devices/util/attribute_wrapper.py
index b27187cda57a7d7238a677a085867011ad0ccb23..73e892322fa24e48f478be1231f7c8c363c64598 100644
--- a/devices/util/attribute_wrapper.py
+++ b/devices/util/attribute_wrapper.py
@@ -138,9 +138,14 @@ class attribute_wrapper(attribute):
             def pass_func(value=None):
                 pass
 
-            logger.error("Exception while setting %s attribute with annotation: '%s' read/write functions. using pass function instead to to keep running", client.__class__.__name__, self.comms_annotation)
+            logger.error("Exception while setting {} attribute with annotation: '{}'".format(client.__class__.__name__, self.comms_annotation))
+            raise Exception("Exception while setting %s attribute with annotation: '%s'", client.__class__.__name__, self.comms_annotation) from e
 
-            self.read_function = pass_func
-            self.write_function = pass_func
+    def set_pass_func(self, client):
+        def pass_func(value=None):
+            pass
 
-            raise Exception("Exception while setting comm_client read/write functions. using pass function instead. %s") from e
+        logger.debug("using pass function for {} attribute with annotation: {}".format(client.__class__.__name__, self.comms_annotation))
+
+        self.read_function = pass_func
+        self.write_function = pass_func