I have searched for any existing and/or related issues.
I have searched for any existing and/or related discussions.
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
v0.6.28
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
No response
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
After emitting multiple citation events in Tool usage it should show multiple different sources below the message.
Actual Behavior
Multiple citations are merged into one source and content is appended to the first one source.
Steps to Reproduce
Run open-webui in docker: docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui_test ghcr.io/open-webui/open-webui:v0.6.28
Add following Tool code:
import os
import requests
from pydantic import Field
import time
class Tools:
def __init__(self):
self.name = "HybridSearchTool"
self.citation = False
async def SearchWithoutDates(
self,
user_query: str = Field(
...,
description="User query to perform full hybrid search.",
),
__event_emitter__=None,
) -> str:
"""
Hybrid search tool without limiting results to specific date ranges.
"""
await __event_emitter__(
{
"type": "status",
"data": {
"status": "in_progress",
"level": "info",
"description": "🔍 Calling hybrid search tool without limiting results to specific date ranges...",
"done": False,
},
}
)
time.sleep(3)
for i in range(10):
doc_id = "id" + str(i)
doc_date = "2025-01-01"
doc_name = "name" + str(i)
chunk_text = "text" + str(i)
# Construct metadata and source
metadata = [
{
"date_accessed": doc_date,
"source": f"Document {doc_name} ({doc_id})",
"title": f"Document {doc_name} ({doc_id})",
}
]
source_url = "https://example.com/doc" + str(i)
# Build citation dictionary
citation = {
"type": "citation",
"data": {
"document": [chunk_text],
"metadata": [metadata],
"source": {
"name": f"Document {doc_name} ({doc_id})",
"url": source_url,
},
},
}
# Emit the citation
await __event_emitter__(citation)
await __event_emitter__(
{
"type": "status",
"data": {
"status": "complete",
"level": "info",
"description": "✅ Finished hybrid search tool call.",
"done": True,
},
}
)
return "EXAMPLE"
Enable tool and write query
Logs & Screenshots
Additional Information
No response
Originally created by @peterpresenter on GitHub (Sep 11, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17366
### 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 am using the latest version of Open WebUI.
### Installation Method
Docker
### Open WebUI Version
v0.6.28
### Ollama Version (if applicable)
_No response_
### Operating System
Windows 11
### Browser (if applicable)
_No response_
### 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
After emitting multiple citation events in Tool usage it should show multiple different sources below the message.
### Actual Behavior
Multiple citations are merged into one source and content is appended to the first one source.
### Steps to Reproduce
1. Run open-webui in docker:
`docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui_test ghcr.io/open-webui/open-webui:v0.6.28`
2. Add following Tool code:
```
import os
import requests
from pydantic import Field
import time
class Tools:
def __init__(self):
self.name = "HybridSearchTool"
self.citation = False
async def SearchWithoutDates(
self,
user_query: str = Field(
...,
description="User query to perform full hybrid search.",
),
__event_emitter__=None,
) -> str:
"""
Hybrid search tool without limiting results to specific date ranges.
"""
await __event_emitter__(
{
"type": "status",
"data": {
"status": "in_progress",
"level": "info",
"description": "🔍 Calling hybrid search tool without limiting results to specific date ranges...",
"done": False,
},
}
)
time.sleep(3)
for i in range(10):
doc_id = "id" + str(i)
doc_date = "2025-01-01"
doc_name = "name" + str(i)
chunk_text = "text" + str(i)
# Construct metadata and source
metadata = [
{
"date_accessed": doc_date,
"source": f"Document {doc_name} ({doc_id})",
"title": f"Document {doc_name} ({doc_id})",
}
]
source_url = "https://example.com/doc" + str(i)
# Build citation dictionary
citation = {
"type": "citation",
"data": {
"document": [chunk_text],
"metadata": [metadata],
"source": {
"name": f"Document {doc_name} ({doc_id})",
"url": source_url,
},
},
}
# Emit the citation
await __event_emitter__(citation)
await __event_emitter__(
{
"type": "status",
"data": {
"status": "complete",
"level": "info",
"description": "✅ Finished hybrid search tool call.",
"done": True,
},
}
)
return "EXAMPLE"
```
3. Enable tool and write query
### Logs & Screenshots
<img width="1056" height="421" alt="Image" src="https://github.com/user-attachments/assets/d99e7258-4301-4e02-b74e-2dd636aac0b1" />
<img width="917" height="115" alt="Image" src="https://github.com/user-attachments/assets/65f9f38d-f5dd-4326-846a-8a2dd554fdc2" />
<img width="923" height="455" alt="Image" src="https://github.com/user-attachments/assets/e2dfeec0-ab8d-49b1-981e-8b064c1b6f70" />
### Additional Information
_No response_
GiteaMirror
added the bug label 2026-05-25 09:01:31 -05:00
@niksubramanian commented on GitHub (Nov 4, 2025):
@tjbck I've ran into the same issue - in the case presented above, there are clearly different ids used for every single field, no?
If it does work as intended, could you clarify which field is used to group?
Thank you, openwebui is a fantastic tool!
<!-- gh-comment-id:3488303957 -->
@niksubramanian commented on GitHub (Nov 4, 2025):
@tjbck I've ran into the same issue - in the case presented above, there are clearly different ids used for every single field, no?
If it does work as intended, could you clarify which field is used to group?
Thank you, openwebui is a fantastic tool!
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @peterpresenter on GitHub (Sep 11, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17366
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.28
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
After emitting multiple citation events in Tool usage it should show multiple different sources below the message.
Actual Behavior
Multiple citations are merged into one source and content is appended to the first one source.
Steps to Reproduce
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui_test ghcr.io/open-webui/open-webui:v0.6.28Logs & Screenshots
Additional Information
No response
@tjbck commented on GitHub (Sep 11, 2025):
Intended behaviour, same id should be merged
@niksubramanian commented on GitHub (Nov 4, 2025):
@tjbck I've ran into the same issue - in the case presented above, there are clearly different ids used for every single field, no?
If it does work as intended, could you clarify which field is used to group?
Thank you, openwebui is a fantastic tool!