diff --git a/ironic_python_agent/errors.py b/ironic_python_agent/errors.py
index 6058d1918..5ec2e3bfd 100644
--- a/ironic_python_agent/errors.py
+++ b/ironic_python_agent/errors.py
@@ -228,30 +228,34 @@ class VirtualMediaBootError(RESTError):
         super(VirtualMediaBootError, self).__init__(details)
 
 
-class ExtensionError(Exception):
+class ExtensionError(RESTError):
     pass
 
 
-class UnknownNodeError(Exception):
+class UnknownNodeError(RESTError):
     """Error raised when the agent is not associated with an Ironic node."""
 
     message = 'Agent is not associated with an Ironic node.'
 
-    def __init__(self, message=None):
-        if message is not None:
-            self.message = message
-        super(UnknownNodeError, self).__init__(self.message)
+    def __init__(self, details=None):
+        if details is not None:
+            details = details
+        else:
+            details = self.message
+        super(UnknownNodeError, self).__init__(details)
 
 
-class HardwareManagerNotFound(Exception):
+class HardwareManagerNotFound(RESTError):
     """Error raised when no valid HardwareManager can be found."""
 
     message = 'No valid HardwareManager found.'
 
-    def __init__(self, message=None):
-        if message is not None:
-            self.message = message
-        super(HardwareManagerNotFound, self).__init__(self.message)
+    def __init__(self, details=None):
+        if details is not None:
+            details = details
+        else:
+            details = self.message
+        super(HardwareManagerNotFound, self).__init__(details)
 
 
 class HardwareManagerMethodNotFound(RESTError):
diff --git a/ironic_python_agent/tests/errors.py b/ironic_python_agent/tests/errors.py
index cc0c0da37..b36cad864 100644
--- a/ironic_python_agent/tests/errors.py
+++ b/ironic_python_agent/tests/errors.py
@@ -108,6 +108,10 @@ class TestErrors(test_base.BaseTestCase):
                  (errors.BlockDeviceEraseError(DETAILS), SAME_DETAILS),
                  (errors.BlockDeviceError(DETAILS), SAME_DETAILS),
                  (errors.VirtualMediaBootError(DETAILS), SAME_DETAILS),
+                 (errors.UnknownNodeError(), SAME_CL_MSG),
+                 (errors.UnknownNodeError(DETAILS), SAME_DETAILS),
+                 (errors.HardwareManagerNotFound(), SAME_CL_MSG),
+                 (errors.HardwareManagerNotFound(DETAILS), SAME_DETAILS),
                  (errors.HardwareManagerMethodNotFound('method'),
                   DIFF_CL_DETAILS),
                  (errors.IncompatibleHardwareMethodError(), SAME_CL_MSG),