[GH-ISSUE #23174] issue: Inconsistent and duplicate rendering of :::writing blocks + missing support for related block types #90647

Closed
opened 2026-05-15 15:55:53 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @ufozone on GitHub (Mar 28, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23174

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.8.12

Ollama Version (if applicable)

No response

Operating System

Windows 11

Browser (if applicable)

Firefox 148.0.2, Chrome 146.0.7680.165

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

:::writing blocks should be consistently and correctly rendered as a single, self-contained formatted block.

  • The content inside the block should appear exactly once
  • No parts of the content should be duplicated outside the block
  • The closing marker (:::) should not be visible
  • Rendering should be stable regardless of surrounding markdown (e.g. separators, lists)

Additionally, related block types (e.g. writing block) should also be recognized and rendered appropriately instead of appearing as plain text.

Actual Behavior

The rendering of :::writing blocks is inconsistent and often incorrect.

  • The block is sometimes rendered correctly
  • However, the same content is duplicated below the block as normal text
  • In some cases, leftover markers like ::: are visible
  • The issue appears intermittently depending on message structure

Additionally, other block types such as writing block are not rendered at all and appear as plain text.

Steps to Reproduce

  1. Open Open WebUI

  2. Select a model that supports the new OpenAI block format (e.g. openai/gpt-5.3-chat-latest)

  3. Send the following prompt:

    "Return a :::writing block with a short structured text (including a title, paragraph, and bullet list)."

  4. Example expected model output:

    :::writing
    Title
    
    This is a test paragraph.
    
    - Item 1
    - Item 2
    :::
    
  5. Observe the rendered output in the UI

  6. In many cases, you will see:

    • a correctly formatted writing block
    • followed by duplicated content rendered again as normal text below
    • sometimes including a visible ::: marker
  7. Repeat the test with slight variations (e.g. adding --- separators or additional text before/after the block) to observe inconsistent behavior

  8. (Optional) Ask the model to use a writing block format instead and observe that it is not rendered and appears as plain text

Logs & Screenshots

Example 1: Wrong parsing

UI view:
Image

Unparsed plain text:

Perfekt, das macht die Aussage sogar **noch stärker und sauberer**. Ich korrigiere dir nur den betroffenen Abschnitt:

---

:::writing
**2. Auffälliges Impulsverhalten S0 Ausgang 1 (konfigurierbar)**

Der S0-Ausgang 1 wurde wie folgt eingestellt:
- 0,01 kWh / Impuls  
- 100 ms Impulsdauer  

Erwartungsgemäß sollte hier ein Impuls pro 0,01 kWh ausgegeben werden.

Tatsächlich beobachte ich jedoch, dass **jeweils zwei Impulse kurz nacheinander ausgegeben werden**, und zwar genau in dem Moment, in dem auch der Energiezähler im Display um **0,02 kWh** weiter springt.

Das Impulsverhalten ist somit nicht unregelmäßig, sondern direkt an die interne Schrittweite von 0,02 kWh gekoppelt. Dies widerspricht jedoch der eingestellten Impulskonstante von 0,01 kWh/Impuls sowie der Erwartung einer gleichmäßigen Impulsausgabe.

Dieses Verhalten ist in der Dokumentation nicht beschrieben und für eine saubere Auswertung über S0 problematisch.
:::

---

Das ist jetzt technisch wasserdicht formuliert – damit zeigst du:
👉 das ist kein Zufall  
👉 sondern systematisches (und falsches) Verhalten des Geräts

Example 2: Duplicate parsing

UI view:
Image

Unparsed plain text:

Hier ist ein möglicher Feature Request (kurz und klar formuliert), den du z.B. auf GitHub posten kannst:

:::writing
### Feature Request: Support `:::writing` blocks for OpenAI Chat models

With the newer OpenAI chat models (e.g. `openai/gpt-5.3-chat-latest`), a new text block format is used for standalone writing artifacts:

:::writing
Text
:::

These blocks are intended for content that could be published or used outside the chat (letters, articles, stories, etc.).

Currently, Open WebUI does not format these blocks correctly and displays them as plain text. It would be great if Open WebUI could add native support for `:::writing` blocks, similar to how code blocks or markdown elements are rendered.

Possible implementation ideas:
- Render `:::writing` blocks with a distinct style (e.g. quote-style container or formatted text panel).
- Optionally allow easy copying or exporting of the contained text.
- Ensure compatibility with OpenAI's newer chat model output conventions.

Supporting this format would improve readability and compatibility with modern OpenAI chat model responses.

Thanks!
:::

Wenn du möchtest, kann ich dir auch noch:
- eine **kürzere Version für GitHub Issues**
- oder eine **technische Version mit Parser‑Beispiel (Regex / Markdown extension)** schreiben.

Example 3: Another writing block tag

UI view:
Image

Additional Information

No response

Originally created by @ufozone on GitHub (Mar 28, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23174 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.8.12 ### Ollama Version (if applicable) _No response_ ### Operating System Windows 11 ### Browser (if applicable) Firefox 148.0.2, Chrome 146.0.7680.165 ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior `:::writing` blocks should be consistently and correctly rendered as a single, self-contained formatted block. - The content inside the block should appear exactly once - No parts of the content should be duplicated outside the block - The closing marker (`:::`) should not be visible - Rendering should be stable regardless of surrounding markdown (e.g. separators, lists) Additionally, related block types (e.g. `writing block`) should also be recognized and rendered appropriately instead of appearing as plain text. ### Actual Behavior The rendering of `:::writing` blocks is inconsistent and often incorrect. - The block is sometimes rendered correctly - However, the same content is duplicated below the block as normal text - In some cases, leftover markers like `:::` are visible - The issue appears intermittently depending on message structure Additionally, other block types such as `writing block` are not rendered at all and appear as plain text. ### Steps to Reproduce 1. Open Open WebUI 2. Select a model that supports the new OpenAI block format (e.g. `openai/gpt-5.3-chat-latest`) 3. Send the following prompt: "Return a `:::writing` block with a short structured text (including a title, paragraph, and bullet list)." 4. Example expected model output: ``` :::writing Title This is a test paragraph. - Item 1 - Item 2 ::: ``` 5. Observe the rendered output in the UI 6. In many cases, you will see: - a correctly formatted writing block - followed by duplicated content rendered again as normal text below - sometimes including a visible `:::` marker 7. Repeat the test with slight variations (e.g. adding `---` separators or additional text before/after the block) to observe inconsistent behavior 8. (Optional) Ask the model to use a `writing block` format instead and observe that it is not rendered and appears as plain text ### Logs & Screenshots **Example 1: Wrong parsing** UI view: <img width="1011" height="629" alt="Image" src="https://github.com/user-attachments/assets/b760512a-b43d-49aa-8903-f44c139044dc" /> Unparsed plain text: ```plain Perfekt, das macht die Aussage sogar **noch stärker und sauberer**. Ich korrigiere dir nur den betroffenen Abschnitt: --- :::writing **2. Auffälliges Impulsverhalten S0 Ausgang 1 (konfigurierbar)** Der S0-Ausgang 1 wurde wie folgt eingestellt: - 0,01 kWh / Impuls - 100 ms Impulsdauer Erwartungsgemäß sollte hier ein Impuls pro 0,01 kWh ausgegeben werden. Tatsächlich beobachte ich jedoch, dass **jeweils zwei Impulse kurz nacheinander ausgegeben werden**, und zwar genau in dem Moment, in dem auch der Energiezähler im Display um **0,02 kWh** weiter springt. Das Impulsverhalten ist somit nicht unregelmäßig, sondern direkt an die interne Schrittweite von 0,02 kWh gekoppelt. Dies widerspricht jedoch der eingestellten Impulskonstante von 0,01 kWh/Impuls sowie der Erwartung einer gleichmäßigen Impulsausgabe. Dieses Verhalten ist in der Dokumentation nicht beschrieben und für eine saubere Auswertung über S0 problematisch. ::: --- Das ist jetzt technisch wasserdicht formuliert – damit zeigst du: 👉 das ist kein Zufall 👉 sondern systematisches (und falsches) Verhalten des Geräts ``` **Example 2: Duplicate parsing** UI view: <img width="1002" height="917" alt="Image" src="https://github.com/user-attachments/assets/b05b4721-6faf-43e2-a2e5-6387121c4e63" /> Unparsed plain text: ```plain Hier ist ein möglicher Feature Request (kurz und klar formuliert), den du z.B. auf GitHub posten kannst: :::writing ### Feature Request: Support `:::writing` blocks for OpenAI Chat models With the newer OpenAI chat models (e.g. `openai/gpt-5.3-chat-latest`), a new text block format is used for standalone writing artifacts: :::writing Text ::: These blocks are intended for content that could be published or used outside the chat (letters, articles, stories, etc.). Currently, Open WebUI does not format these blocks correctly and displays them as plain text. It would be great if Open WebUI could add native support for `:::writing` blocks, similar to how code blocks or markdown elements are rendered. Possible implementation ideas: - Render `:::writing` blocks with a distinct style (e.g. quote-style container or formatted text panel). - Optionally allow easy copying or exporting of the contained text. - Ensure compatibility with OpenAI's newer chat model output conventions. Supporting this format would improve readability and compatibility with modern OpenAI chat model responses. Thanks! ::: Wenn du möchtest, kann ich dir auch noch: - eine **kürzere Version für GitHub Issues** - oder eine **technische Version mit Parser‑Beispiel (Regex / Markdown extension)** schreiben. ``` **Example 3: Another writing block tag** UI view: <img width="985" height="627" alt="Image" src="https://github.com/user-attachments/assets/e8a5b9fb-cac2-4c56-a0a6-23368c63d41c" /> ### Additional Information _No response_
GiteaMirror added the bug label 2026-05-15 15:55:53 -05:00
Author
Owner

@tjbck commented on GitHub (Apr 1, 2026):

Updated to match ChatGPT's behaviour.

<!-- gh-comment-id:4169105233 --> @tjbck commented on GitHub (Apr 1, 2026): Updated to match ChatGPT's behaviour.
Author
Owner

@Classic298 commented on GitHub (Apr 1, 2026):

eb5c95ef8e

<!-- gh-comment-id:4169397623 --> @Classic298 commented on GitHub (Apr 1, 2026): https://github.com/open-webui/open-webui/commit/eb5c95ef8e514e478d8757b9f14914aa23d82949
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#90647