diff --git a/trytond/protocols/jsonrpc.py b/trytond/protocols/jsonrpc.py index 659814290f..d415da9668 100644 --- a/trytond/protocols/jsonrpc.py +++ b/trytond/protocols/jsonrpc.py @@ -154,7 +154,7 @@ class JSONProtocol: response['result'] = data else: if isinstance(data, Exception): - return InternalServerError() + return InternalServerError(data) response = data return Response(json.dumps(response, cls=JSONEncoder), content_type='application/json') diff --git a/trytond/wsgi.py b/trytond/wsgi.py index bf19d6e4de..f7672666e4 100644 --- a/trytond/wsgi.py +++ b/trytond/wsgi.py @@ -6,7 +6,7 @@ import traceback from werkzeug.wrappers import Response from werkzeug.routing import Map, Rule -from werkzeug.exceptions import abort, HTTPException +from werkzeug.exceptions import abort, HTTPException, InternalServerError import wrapt @@ -82,7 +82,10 @@ class TrytondWSGI(object): response = cls.response(data, request) break else: - response = Response(data) + if isinstance(data, Exception): + response = InternalServerError(data) + else: + response = Response(data) else: response = data # TODO custom process response