diff --git a/tangostationcontrol/tangostationcontrol/devices/temperature_manager.py b/tangostationcontrol/tangostationcontrol/devices/temperature_manager.py
index c134d5150662cf868afb788439383ae9135281d1..e3567d4ccaf57e590415066d3e2be61f130d1fe4 100644
--- a/tangostationcontrol/tangostationcontrol/devices/temperature_manager.py
+++ b/tangostationcontrol/tangostationcontrol/devices/temperature_manager.py
@@ -138,9 +138,13 @@ class TemperatureManager(LOFARDevice):
 
         # unsubscribe from all events
         for attr_name in list(self.temp_error_attrs.keys()):
-            dev_attr = self.temp_error_attrs[attr_name]
-            dev_attr.proxy.unsubscribe_event(dev_attr.subscription_id)
-            del self.temp_error_attrs[attr_name]
+            try:
+                dev_attr = self.temp_error_attrs[attr_name]
+                dev_attr.proxy.unsubscribe_event(dev_attr.subscription_id)
+            except Exception as e:
+                raise Exception(f"Failed to unsubscribe from event regarding device {dev_attr.proxy.dev_name()} attribute {attr_name}") from e
+            finally:
+                del self.temp_error_attrs[attr_name]
 
     is_alarming_R = attribute(
         dtype=bool,