fix: persist upstream streaming error lines by awaiting the message upsert (#27365)

The branch that normalizes plain JSON error lines from streaming upstreams (lines without the SSE data: prefix) called Chats.upsert_message_to_chat_by_id_and_message_id without await. The coroutine was never executed, so the error was never written to the chat and Python emitted a "coroutine was never awaited" RuntimeWarning instead. The frontend still received the error event, but after a reload the message showed no trace of the failure.

The parallel error-persist branch further down the same handler already awaits the call; this aligns the two.
This commit is contained in:
Classic298
2026-07-24 00:49:18 +02:00
committed by GitHub
parent e769f9ff4f
commit dd514ee20b
+1 -1
View File
@@ -4116,7 +4116,7 @@ async def streaming_chat_response_handler(response, ctx):
raw_error = raw_obj.get('error') if isinstance(raw_obj, dict) else None
if raw_error:
try:
Chats.upsert_message_to_chat_by_id_and_message_id(
await Chats.upsert_message_to_chat_by_id_and_message_id(
metadata['chat_id'],
metadata['message_id'],
{