Source code for acapy_agent.utils.extract_validation_error
"""Extract validation error messages from nested exceptions."""
from aiohttp.web import HTTPUnprocessableEntity
from marshmallow.exceptions import ValidationError
[docs]
def extract_validation_error_message(exc: HTTPUnprocessableEntity) -> str:
"""Extract marshmallow error message from a nested UnprocessableEntity exception."""
visited = set()
current_exc = exc
while current_exc and current_exc not in visited:
visited.add(current_exc)
if isinstance(current_exc, ValidationError):
return current_exc.messages
current_exc = current_exc.__cause__ or current_exc.__context__
return exc.reason