diff --git a/devices/clients/attribute_wrapper.py b/devices/clients/attribute_wrapper.py
index e55a662142cb89f62775fb7ac2189c063593df37..e025d56d3421144b0dfeb1457f417fd4946a2671 100644
--- a/devices/clients/attribute_wrapper.py
+++ b/devices/clients/attribute_wrapper.py
@@ -154,7 +154,7 @@ class attribute_wrapper(attribute):
         try:
             self.read_function, self.write_function = client.setup_attribute(self.comms_annotation, self)
         except Exception as e:
-            raise Exception("Exception while setting %s attribute with annotation: '%s'", client.__class__.__name__, self.comms_annotation) from e
+            raise Exception(f"Exception while setting {client.__class__.__name__} attribute with annotation: {self.comms_annotation}") from e
 
     async def async_set_comm_client(self, client):
         """
@@ -163,7 +163,7 @@ class attribute_wrapper(attribute):
         try:
             self.read_function, self.write_function = await client.setup_attribute(self.comms_annotation, self)
         except Exception as e:
-            raise Exception("Exception while setting %s attribute with annotation: '%s'", client.__class__.__name__, self.comms_annotation) from e
+            raise Exception(f"Exception while setting {client.__class__.__name__} attribute with annotation: {self.comms_annotation}") from e
 
     def set_pass_func(self):
         def pass_func(value=None):
diff --git a/devices/clients/opcua_client.py b/devices/clients/opcua_client.py
index bf68edd19318648f1c8313f349a63671000382c7..1c6ee35621dcc1ca5671ffbb31bbc71ddfa75faf 100644
--- a/devices/clients/opcua_client.py
+++ b/devices/clients/opcua_client.py
@@ -86,7 +86,9 @@ class OPCUAConnection(AsyncCommClient):
         ping the client to make sure the connection with the client is still functional.
         """
         try:
-            await self.client.send_hello()
+            # do a cheap call. NOTE: send_hello is not allowed after establishing a connection,
+            # so cannot be used here. see https://reference.opcfoundation.org/v104/Core/docs/Part6/7.1.3/
+            _ = await self.client.get_namespace_array()
         except Exception as e:
             raise IOError("Lost connection to server %s: %s", self._servername(), e)