diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index 41e56e6530..a298ebeb31 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -1305,6 +1305,13 @@ async def process_chat_response( "error": {"content": error}, }, ) + if isinstance(error, str) or isinstance(error, dict): + await event_emitter( + { + "type": "chat:message:error", + "data": {"error": {"content": error}}, + }, + ) if "selected_model_id" in response_data: Chats.upsert_message_to_chat_by_id_and_message_id( diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index a2f5116dee..86d86a9ae4 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -324,6 +324,8 @@ message.content = data.content; } else if (type === 'chat:message:files' || type === 'files') { message.files = data.files; + } else if (type === 'chat:message:error') { + message.error = data.error; } else if (type === 'chat:message:follow_ups') { message.followUps = data.follow_ups;