@@ -105,7 +105,7 @@ async def runs_endpoint(request):
105105 try :
106106 first_event = next (resp )
107107 except Exception as e : # noqa: BLE001
108- err_msg = str (e ) if DEBUG_ERRORS else "Internal error"
108+ err_msg = _format_error (e )
109109 logger .error ("Generator initialization failed: %s\n %s" , e , traceback .format_exc ())
110110 return JSONResponse ({"error" : err_msg }, status_code = 500 )
111111
@@ -119,7 +119,7 @@ def gen():
119119 for event in resp :
120120 yield _event_to_sse_chunk (event )
121121 except Exception as e : # noqa: BLE001
122- err_msg = str (e ) if DEBUG_ERRORS else "Internal error"
122+ err_msg = _format_error (e )
123123 logger .error ("Error in non-async generator: %s\n %s" , e , traceback .format_exc ())
124124 payload = {"error" : err_msg }
125125 yield f"event: error\n data: { json .dumps (payload )} \n \n "
@@ -143,7 +143,7 @@ def empty_gen():
143143
144144 return StreamingResponse (empty_gen (), media_type = "text/event-stream" )
145145 except Exception as e : # noqa: BLE001
146- err_msg = str (e ) if DEBUG_ERRORS else "Internal error"
146+ err_msg = _format_error (e )
147147 logger .error ("Async generator initialization failed: %s\n %s" , e , traceback .format_exc ())
148148 return JSONResponse ({"error" : err_msg }, status_code = 500 )
149149
@@ -157,7 +157,7 @@ async def gen_async():
157157 async for event in resp :
158158 yield _event_to_sse_chunk (event )
159159 except Exception as e : # noqa: BLE001
160- err_msg = str (e ) if DEBUG_ERRORS else "Internal error"
160+ err_msg = _format_error (e )
161161 logger .error ("Error in async generator: %s\n %s" , e , traceback .format_exc ())
162162 payload = {"error" : err_msg }
163163 yield f"event: error\n data: { json .dumps (payload )} \n \n "
@@ -311,5 +311,14 @@ def _event_to_sse_chunk(event: ResponseStreamEvent) -> str:
311311 return f"data: { event_data } \n \n "
312312
313313
314+ def _format_error (exc : Exception ) -> str :
315+ message = str (exc )
316+ if message :
317+ return message
318+ if DEBUG_ERRORS :
319+ return repr (exc )
320+ return "Internal error"
321+
322+
314323def _to_response (result : Union [Response , dict ]) -> Response :
315324 return result if isinstance (result , Response ) else JSONResponse (result )
0 commit comments