diff --git a/aas/adapter/http.py b/aas/adapter/http.py
index 93da59ac25f4681ef41836ee6dc6ee30602f7037..5641720e146e4cf0e6608466419f8281e6c66d40 100644
--- a/aas/adapter/http.py
+++ b/aas/adapter/http.py
@@ -18,7 +18,7 @@ from lxml import etree # type: ignore
import werkzeug.exceptions
import werkzeug.routing
import werkzeug.urls
-from werkzeug.exceptions import BadRequest, Conflict, NotFound
+from werkzeug.exceptions import BadRequest, Conflict, NotFound, UnprocessableEntity
from werkzeug.routing import MapAdapter, Rule, Submount
from werkzeug.wrappers import Request, Response
@@ -258,7 +258,7 @@ def parse_request_body(request: Request, expect_type: Type[T]) -> T:
except (KeyError, ValueError, TypeError, json.JSONDecodeError, etree.XMLSyntaxError) as e:
while e.__cause__ is not None:
e = e.__cause__
- raise BadRequest(str(e)) from e
+ raise UnprocessableEntity(str(e)) from e
assert isinstance(rv, expect_type)
return rv
@@ -488,7 +488,7 @@ class WSGIApp:
try:
submodel_identifier = sm_ref.get_identifier()
except ValueError as e:
- raise BadRequest(f"Can't resolve submodel identifier for given reference!") from e
+ raise UnprocessableEntity(f"Can't resolve submodel identifier for given reference!") from e
if sm_ref in aas.submodel:
raise Conflict(f"{sm_ref!r} already exists!")
aas.submodel.add(sm_ref)
@@ -626,10 +626,10 @@ class WSGIApp:
mismatch_error_message = f" of new submodel element {new_submodel_element} doesn't not match " \
f"the current submodel element {submodel_element}"
if type(submodel_element) is not type(new_submodel_element):
- raise BadRequest("Type" + mismatch_error_message)
+ raise UnprocessableEntity("Type" + mismatch_error_message)
# compare id_shorts case-insensitively
if submodel_element.id_short.lower() != new_submodel_element.id_short.lower():
- raise BadRequest("id_short" + mismatch_error_message)
+ raise UnprocessableEntity("id_short" + mismatch_error_message)
submodel_element.update_from(new_submodel_element)
submodel_element.commit()
return response_t(Result(submodel_element))
@@ -658,7 +658,7 @@ class WSGIApp:
submodel.update()
submodel_element = self._get_nested_submodel_element(submodel, url_args["id_shorts"])
if not isinstance(submodel_element, type_):
- raise BadRequest(f"Submodel element {submodel_element} is not a(n) {type_.__name__}!")
+ raise UnprocessableEntity(f"Submodel element {submodel_element} is not a(n) {type_.__name__}!")
return response_t(Result(tuple(getattr(submodel_element, attr))))
return route
@@ -674,7 +674,7 @@ class WSGIApp:
id_shorts = url_args["id_shorts"]
submodel_element = self._get_nested_submodel_element(submodel, id_shorts)
if not isinstance(submodel_element, type_):
- raise BadRequest(f"Submodel element {submodel_element} is not a(n) {type_.__name__}!")
+ raise UnprocessableEntity(f"Submodel element {submodel_element} is not a(n) {type_.__name__}!")
new_submodel_element = parse_request_body(request, request_body_type)
if new_submodel_element.id_short in getattr(submodel_element, attr):
raise Conflict(f"Submodel element with id_short {new_submodel_element.id_short} already exists!")