diff --git a/ironic/api/controllers/v1/utils.py b/ironic/api/controllers/v1/utils.py
index 2949325..5c13d2a 100644
--- a/ironic/api/controllers/v1/utils.py
+++ b/ironic/api/controllers/v1/utils.py
@@ -42,7 +42,8 @@ from ironic import objects
 CONF = cfg.CONF
 
 
-_JSONPATCH_EXCEPTIONS = (jsonpatch.JsonPatchException,
+_JSONPATCH_EXCEPTIONS = (jsonpatch.JsonPatchConflict,
+                         jsonpatch.JsonPatchException,
                          jsonpatch.JsonPointerException,
                          KeyError,
                          IndexError)
diff --git a/ironic/tests/unit/api/controllers/v1/test_deploy_template.py b/ironic/tests/unit/api/controllers/v1/test_deploy_template.py
index 049a21f..d30b763 100644
--- a/ironic/tests/unit/api/controllers/v1/test_deploy_template.py
+++ b/ironic/tests/unit/api/controllers/v1/test_deploy_template.py
@@ -361,7 +361,8 @@ class TestPatch(BaseDeployTemplatesAPITest):
         self.assertEqual('application/json', response.content_type)
         self.assertEqual(http_client.BAD_REQUEST, response.status_code)
         self.assertTrue(response.json['error_message'])
-        self.assertIn(error_msg, response.json['error_message'])
+        #self.assertIn(error_msg, response.json['error_message'])
+        self.assertRegex(response.json['error_message'], error_msg)
         self.assertFalse(mock_save.called)
         return response
 
@@ -539,7 +540,8 @@ class TestPatch(BaseDeployTemplatesAPITest):
         }
         patch = [{'path': '/steps/1', 'op': 'replace', 'value': step}]
         self._test_update_bad_request(
-            mock_save, patch, "list assignment index out of range")
+            mock_save, patch, "list assignment index out of range|"
+                              "can't replace outside of list")
 
     def test_replace_empty_step_list_fail(self, mock_save):
         patch = [{'path': '/steps', 'op': 'replace', 'value': []}]
@@ -567,7 +569,7 @@ class TestPatch(BaseDeployTemplatesAPITest):
 
     def test_remove_foo(self, mock_save):
         self._test_remove_not_allowed(
-            mock_save, 'foo', "can't remove non-existent object 'foo'")
+            mock_save, 'foo', "can't remove a non-existent object 'foo'")
 
     def test_replace_step_invalid_interface(self, mock_save):
         patch = [{'path': '/steps/0/interface', 'op': 'replace',
@@ -634,12 +636,12 @@ class TestPatch(BaseDeployTemplatesAPITest):
         patch = [{'path': '/non-existent', 'op': 'remove'}]
         self._test_update_bad_request(
             mock_save, patch,
-            "can't remove non-existent object 'non-existent'")
+            "can't remove a non-existent object 'non-existent'")
 
     def test_remove_non_existent_step_fail(self, mock_save):
         patch = [{'path': '/steps/1', 'op': 'remove'}]
         self._test_update_bad_request(
-            mock_save, patch, "can't remove non-existent object '1'")
+            mock_save, patch, "can't remove a non-existent object '1'")
 
     def test_remove_only_step_fail(self, mock_save):
         patch = [{'path': '/steps/0', 'op': 'remove'}]
@@ -650,12 +652,12 @@ class TestPatch(BaseDeployTemplatesAPITest):
         patch = [{'path': '/steps/0/non-existent', 'op': 'remove'}]
         self._test_update_bad_request(
             mock_save, patch,
-            "can't remove non-existent object 'non-existent'")
+            "can't remove a non-existent object 'non-existent'")
 
     def test_add_root_non_existent(self, mock_save):
         patch = [{'path': '/foo', 'value': 'bar', 'op': 'add'}]
         self._test_update_bad_request(
-            mock_save, patch, "Adding a new attribute (/foo)")
+            mock_save, patch, "Adding a new attribute \(/foo\)")
 
     def test_add_too_high_index_step_fail(self, mock_save):
         step = {
diff --git a/ironic/tests/unit/api/controllers/v1/test_utils.py b/ironic/tests/unit/api/controllers/v1/test_utils.py
index d18fded..1c7d842 100644
--- a/ironic/tests/unit/api/controllers/v1/test_utils.py
+++ b/ironic/tests/unit/api/controllers/v1/test_utils.py
@@ -105,7 +105,7 @@ class TestApiUtils(base.TestCase):
         doc = {}
         patch = [{"op": "remove", "path": "/foo"}]
         self.assertRaisesRegex(exception.PatchError,
-                               "can't remove non-existent object 'foo'",
+                               "can't remove a non-existent object 'foo'",
                                utils.apply_jsonpatch, doc, patch)
 
     def test_apply_jsonpatch_replace_non_existent_list_item(self):
@@ -113,6 +113,7 @@ class TestApiUtils(base.TestCase):
         doc = []
         patch = [{"op": "replace", "path": "/0", "value": 42}]
         self.assertRaisesRegex(exception.PatchError,
+                               "can't replace outside of list|"
                                "list assignment index out of range",
                                utils.apply_jsonpatch, doc, patch)
 
