1818from ..mimetype_constants import MIMETYPE_APPLICATION_JSON
1919from ..rest_responses import is_enveloped_from_map , is_enveloped_from_text
2020from ..utils import is_production_environ
21- from .rest_responses import create_data_response , create_http_error , wrap_as_envelope
21+ from .rest_responses import (
22+ create_data_response ,
23+ create_http_error ,
24+ safe_status_message ,
25+ wrap_as_envelope ,
26+ )
2227from .rest_utils import EnvelopeFactory
2328from .typing_extension import Handler , Middleware
2429
@@ -83,6 +88,8 @@ async def _middleware_handler(request: web.Request, handler: Handler): # noqa:
8388 except web .HTTPError as err :
8489
8590 err .content_type = MIMETYPE_APPLICATION_JSON
91+ if err .reason :
92+ err .set_status (err .status , safe_status_message (message = err .reason ))
8693
8794 if not err .text or not is_enveloped_from_text (err .text ):
8895 error_message = err .text or err .reason or "Unexpected error"
@@ -102,6 +109,9 @@ async def _middleware_handler(request: web.Request, handler: Handler): # noqa:
102109
103110 except web .HTTPSuccessful as err :
104111 err .content_type = MIMETYPE_APPLICATION_JSON
112+ if err .reason :
113+ err .set_status (err .status , safe_status_message (message = err .reason ))
114+
105115 if err .text :
106116 try :
107117 payload = json_loads (err .text )
@@ -176,10 +186,7 @@ async def _middleware_handler(
176186 return resp
177187
178188 if not isinstance (resp , StreamResponse ):
179- resp = create_data_response (
180- data = resp ,
181- skip_internal_error_details = _is_prod ,
182- )
189+ resp = create_data_response (data = resp )
183190
184191 assert isinstance (resp , web .StreamResponse ) # nosec
185192 return resp
0 commit comments