[PR #20993] [CLOSED] fix: prevent empty embeds attribute from rendering as {} in tool calls UI #64725

Closed
opened 2026-05-06 10:22:40 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/20993
Author: @cannontrodder
Created: 1/28/2026
Status: Closed

Base: devHead: fix/empty-embeds-rendering


📝 Commits (10+)

📊 Changes

1 file changed (+2 additions, -2 deletions)

View changed files

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

📄 Description

Summary

Fixes #20991

When a tool call has no embeds, an empty {} is incorrectly rendered in the UI. This is caused by the default value for embeds being an empty string "" instead of an empty list [].

Changes

  • Changed default value for tool_result_embeds from "" to []
  • Only include embeds attribute in HTML when non-empty

Root Cause

The empty string default gets JSON-encoded to '""' and HTML-escaped to '""'. The frontend's parseJSONString() then fails to parse this correctly, resulting in a JSON parse error and {} being rendered.

Testing

  • Before: Tool calls without embeds show {} in red box and SyntaxError: JSON.parse: unexpected character at line 1 column 1 in console
  • After: Tool calls without embeds render cleanly with no spurious content

Test steps performed:

  1. Deployed OpenWebUI with AWS Bedrock backend via LiteLLM
  2. Triggered image generation tool call ("Generate an image of a fluffy cow")
  3. Observed {} rendering and console error before fix
  4. Applied fix and verified clean rendering

Checklist

  • Code follows project style guidelines
  • Minimal change to fix the issue
  • No breaking changes to existing functionality
  • Personally tested all changes

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/20993 **Author:** [@cannontrodder](https://github.com/cannontrodder) **Created:** 1/28/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/empty-embeds-rendering` --- ### 📝 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** (+2 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/utils/middleware.py` (+2 -2) </details> ### 📄 Description ## Summary Fixes #20991 When a tool call has no embeds, an empty `{}` is incorrectly rendered in the UI. This is caused by the default value for `embeds` being an empty string `""` instead of an empty list `[]`. ## Changes - Changed default value for `tool_result_embeds` from `""` to `[]` - Only include `embeds` attribute in HTML when non-empty ## Root Cause The empty string default gets JSON-encoded to `'""'` and HTML-escaped to `'&quot;&quot;'`. The frontend's `parseJSONString()` then fails to parse this correctly, resulting in a JSON parse error and `{}` being rendered. ## Testing - **Before:** Tool calls without embeds show `{}` in red box and `SyntaxError: JSON.parse: unexpected character at line 1 column 1` in console - **After:** Tool calls without embeds render cleanly with no spurious content ### Test steps performed: 1. Deployed OpenWebUI with AWS Bedrock backend via LiteLLM 2. Triggered image generation tool call ("Generate an image of a fluffy cow") 3. Observed `{}` rendering and console error before fix 4. Applied fix and verified clean rendering ## Checklist - [x] Code follows project style guidelines - [x] Minimal change to fix the issue - [x] No breaking changes to existing functionality - [x] Personally tested all changes ### 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-05-06 10:22:40 -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#64725