diff --git a/tangostationcontrol/tangostationcontrol/devices/device_decorators.py b/tangostationcontrol/tangostationcontrol/devices/device_decorators.py
index b1dbb4b7a5b61bf80169e8945b7347f9d2e394fb..88486177a56240b7c40033c3bb96fe0da9475f46 100644
--- a/tangostationcontrol/tangostationcontrol/devices/device_decorators.py
+++ b/tangostationcontrol/tangostationcontrol/devices/device_decorators.py
@@ -55,11 +55,9 @@ def fault_on_error():
             try:
                 return func(self, *args, **kwargs)
             except Exception as e:
-
                 logger.exception("Function failed.")
                 self.Fault(f"FAULT in {func.__name__}: {e.__class__.__name__}: {e}")
-
-                return None
+                raise
 
         return error_wrapper
 
diff --git a/tangostationcontrol/tangostationcontrol/test/devices/test_observation_device.py b/tangostationcontrol/tangostationcontrol/test/devices/test_observation_device.py
index 1087fdd9f2fa927b7ca88867d246802c09ffc6aa..dc04f5d07a1335190ba1c1ce1783144f36b3b734 100644
--- a/tangostationcontrol/tangostationcontrol/test/devices/test_observation_device.py
+++ b/tangostationcontrol/tangostationcontrol/test/devices/test_observation_device.py
@@ -41,8 +41,8 @@ class TestObservationDevice(device_base.DeviceTestCase, test_observation_base.Te
         with DeviceTestContext(observation.Observation, process=True) as proxy:
             proxy.off()
             proxy.observation_settings_RW = "{}"
-            proxy.Initialise()
-            self.assertEqual(DevState.FAULT, proxy.state())
+            with self.assertRaises(DevFailed):
+                proxy.Initialise()
 
     def test_prohibit_rewriting_settings(self):
         """Test that changing observation settings is disallowed once init"""