From cc757b78007bf69b9a620992873b5e106aa7a065 Mon Sep 17 00:00:00 2001 From: Roland Tannous Date: Mon, 30 Mar 2026 13:02:55 +0000 Subject: [PATCH] fix duplicate [DONE] and suppress httpcore RuntimeError on Python 3.13 asyncgen cleanup --- studio/backend/routes/inference.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/studio/backend/routes/inference.py b/studio/backend/routes/inference.py index 962a7217d3..9e7453b7b0 100644 --- a/studio/backend/routes/inference.py +++ b/studio/backend/routes/inference.py @@ -965,13 +965,20 @@ async def _proxy_to_external_provider( stream = payload.stream, ) try: + sent_done = False async for line in gen: yield f"{line}\n\n" - yield "data: [DONE]\n\n" + if "[DONE]" in line: + sent_done = True + if not sent_done: + yield "data: [DONE]\n\n" except Exception as exc: logger.error("external_provider.stream_error", error = str(exc)) finally: - await gen.aclose() + try: + await gen.aclose() + except RuntimeError: + pass # suppress httpcore asyncgen cleanup error (Python 3.13 + httpcore 1.0.x) await client.close() return StreamingResponse(