From 29289f5ba67d39255837a6385e5394192733a12e Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:30:31 -0400 Subject: [PATCH] fix: deleting a message in the middle of a chat keeps the earlier messages in the model's context (#32332) --- backend/open_webui/models/chats.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/open_webui/models/chats.py b/backend/open_webui/models/chats.py index 464901d203..dbdae4eea1 100644 --- a/backend/open_webui/models/chats.py +++ b/backend/open_webui/models/chats.py @@ -1374,6 +1374,7 @@ class ChatTable: self._repair_chat_current_id(chat) history = chat.get('history', {}) + parent_id = ((history.get('messages') or {}).get(message_id) or {}).get('parentId') deleted_ids = self.delete_message_from_history(history, message_id) await ChatMessages.delete_message_ids_by_chat_id(id, deleted_ids, db=session) if not deleted_ids: @@ -1384,6 +1385,12 @@ class ChatTable: return ChatModel.model_validate(chat_item) + for mid, message in (history.get('messages') or {}).items(): + if message.get('parentId') == parent_id: + await ChatMessages.upsert_message( + mid, id, message.get('user_id') or chat_item.user_id, message, db=session + ) + chat['history'] = history chat_item.chat = chat chat_item.title = self._clean_null_bytes(chat.get('title', 'New Chat'))