[PR #21584] [CLOSED] fix: skip memory context injection when system prompt is empty #26149

Closed
opened 2026-04-20 06:21:36 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/21584
Author: @lesj0610
Created: 2/19/2026
Status: Closed

Base: devHead: fix/memory-context-system-prompt-gate


📝 Commits (10+)

📊 Changes

1 file changed (+13 additions, -3 deletions)

View changed files

📝 backend/open_webui/utils/middleware.py (+13 -3)

📄 Description

Summary

  • Skip memory-context system-message injection when no system prompt is configured.
  • Prevent empty `User Context:

` system messages from being appended.

Why

When the system prompt is intentionally blank, middleware still appended a system message via memory handling. This caused unintended prompt injection and unnecessary context artifacts.

Changes

  • In chat_memory_handler (backend/open_webui/utils/middleware.py):
    • Return early if current system prompt is blank.
    • Append User Context only when memory query produced non-empty context.

Changelog Entry

Description

  • Fixes an edge case where memory middleware injected an empty User Context system message even when no system prompt was configured.

Added

  • None.

Changed

  • chat_memory_handler now skips memory-context system-message injection when the system prompt is blank.

Deprecated

  • None.

Removed

  • None.

Fixed

  • Prevents empty `User Context:

` system-message injection.

Security

  • None.

Breaking Changes

  • BREAKING CHANGE: None.

Additional Information

  • Scope intentionally limited to backend/open_webui/utils/middleware.py.

Screenshots or Videos

  • N/A (backend-only change).

Testing

  • I personally tested the change locally.
  • Verified no User Context system message is appended when system prompt is empty.
  • Verified User Context is appended when system prompt is set and memory returns results.
  • python3 -m compileall backend/open_webui/utils/middleware.py

Contributor License Agreement

By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.

Note

Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/21584 **Author:** [@lesj0610](https://github.com/lesj0610) **Created:** 2/19/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/memory-context-system-prompt-gate` --- ### 📝 Commits (10+) - [`fe6783c`](https://github.com/open-webui/open-webui/commit/fe6783c16699911c7be17392596d579333fb110c) Merge pull request #19030 from open-webui/dev - [`fc05e0a`](https://github.com/open-webui/open-webui/commit/fc05e0a6c5d39da60b603b4d520f800d6e36f748) Merge pull request #19405 from open-webui/dev - [`e3faec6`](https://github.com/open-webui/open-webui/commit/e3faec62c58e3a83d89aa3df539feacefa125e0c) Merge pull request #19416 from open-webui/dev - [`9899293`](https://github.com/open-webui/open-webui/commit/9899293f050ad50ae12024cbebee7e018acd851e) Merge pull request #19448 from open-webui/dev - [`140605e`](https://github.com/open-webui/open-webui/commit/140605e660b8186a7d5c79fb3be6ffb147a2f498) Merge pull request #19462 from open-webui/dev - [`6f1486f`](https://github.com/open-webui/open-webui/commit/6f1486ffd0cb288d0e21f41845361924e0d742b3) Merge pull request #19466 from open-webui/dev - [`d95f533`](https://github.com/open-webui/open-webui/commit/d95f533214e3fe5beb5e41ec1f349940bc4c7043) Merge pull request #19729 from open-webui/dev - [`a727153`](https://github.com/open-webui/open-webui/commit/a7271532f8a38da46785afcaa7e65f9a45e7d753) 0.6.43 (#20093) - [`6adde20`](https://github.com/open-webui/open-webui/commit/6adde203cd292a9e3af9c64a2ae36b603fed096a) Merge pull request #20394 from open-webui/dev - [`f9b0534`](https://github.com/open-webui/open-webui/commit/f9b0534e0c442631d1cb7205169588b9b6204179) Merge pull request #20522 from open-webui/dev ### 📊 Changes **1 file changed** (+13 additions, -3 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/utils/middleware.py` (+13 -3) </details> ### 📄 Description ## Summary - Skip memory-context system-message injection when no system prompt is configured. - Prevent empty `User Context: ` system messages from being appended. ## Why When the system prompt is intentionally blank, middleware still appended a system message via memory handling. This caused unintended prompt injection and unnecessary context artifacts. ## Changes - In `chat_memory_handler` (`backend/open_webui/utils/middleware.py`): - Return early if current system prompt is blank. - Append `User Context` only when memory query produced non-empty context. # Changelog Entry ### Description - Fixes an edge case where memory middleware injected an empty `User Context` system message even when no system prompt was configured. ### Added - None. ### Changed - `chat_memory_handler` now skips memory-context system-message injection when the system prompt is blank. ### Deprecated - None. ### Removed - None. ### Fixed - Prevents empty `User Context: ` system-message injection. ### Security - None. ### Breaking Changes - **BREAKING CHANGE**: None. --- ### Additional Information - Scope intentionally limited to `backend/open_webui/utils/middleware.py`. ### Screenshots or Videos - N/A (backend-only change). ## Testing - ✅ I personally tested the change locally. - ✅ Verified no `User Context` system message is appended when system prompt is empty. - ✅ Verified `User Context` is appended when system prompt is set and memory returns results. - ✅ `python3 -m compileall backend/open_webui/utils/middleware.py` ### Contributor License Agreement By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. > [!NOTE] > Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-20 06:21:36 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#26149