mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 11:28:35 -05:00
issue: Potential Root Cause for Data Loss (Multi-Device) and Performance Issues (Multimodal) #6875
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @2erTwo6 on GitHub (Nov 9, 2025).
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.36
Ollama Version (if applicable)
N/A
Operating System
Debian 12
Browser (if applicable)
Chrome
Confirmation
README.md.Expected Behavior
1.Multi-Device Sync: When a chat is updated on one device, the changes should be reflected on other devices viewing the same chat. At the very least, a device with an older, stale state should not be able to overwrite the entire up-to-date chat history on the server.
2.Multimodal Performance: After an image is uploaded in the first turn of a conversation, subsequent messages in the same chat should only send the new text prompt and context, not re-upload the entire, large image data with every single message.
Actual Behavior
I have observed two distinct but possibly related critical issues:
Steps to Reproduce
Scenario A: Data Loss with Multiple Devices
Scenario B: Performance Issue with Image Uploads
POSTrequest sent to the backend. Note its large size (e.g., ~8MB).POSTrequest is sent, and its payload size is again very large (~8MB), indicating the image data was sent a second time. Often, after the AI's response is streamed back, another large request is sent, presumably to save the conversation history.Logs & Screenshots
As you can see in Screenshot 2, which shows the new elements added after I sent 'test', two large requests—each up to 6MB—appeared. This is the exact issue I mentioned earlier regarding Scenario B, and it's causing severe performance problems when using the multimodal model.
Additional Information
I suspect these two seemingly separate issues may stem from the same underlying architectural design.
It appears that the frontend client might be treated as the "single source of truth" for the entire chat history. With every interaction, the client seems to send the complete chat history (including large Base64 image data) back to the server, which then likely overwrites the existing record in the database.
This would explain the performance issue (Scenario B), as the large image Base64 string is part of that "complete history" and is therefore resent every time.
It would also explain the data loss (Scenario A), as the client on Device B holds an outdated "complete history." Its submission of this stale history to the server overwrites the more recent and longer history from Device A in a classic "last write wins" conflict.
I understand that Open WebUI may have been initially designed as a local "Ollama manager," where these issues might be less apparent (especially performance issues over localhost). However, as the project evolves into a more general-purpose WebUI for self-hosted website scenarios like mine, this client-centric state management could be a significant architectural challenge.
This is just my observation as a user trying to deploy Open WebUI in a distributed environment. I hope this detailed analysis is helpful for future architectural considerations. Thank you for your amazing work on this project.
P.S. As English is not my first language, I have utilized an AI assistant to help draft this issue. I apologize if the wording appears to be overly verbose or unnatural at times. My primary goal was to convey the technical details as clearly as possible, and I hope the core points are understandable.
@silentoplayz commented on GitHub (Nov 9, 2025):
I am able to reproduce both issues described with the provided reproduction steps (great job on those by the way!) on the latest
dev.@2erTwo6 commented on GitHub (Nov 9, 2025):
Following up on my initial report, I've refined some details to make the issue even clearer, especially regarding the real-world impact of Scenario B.
Refined Analysis of Scenario B's Impact:
To be more specific, the performance degradation I mentioned has two critical consequences for anyone deploying Open WebUI in a real-world, distributed environment (i.e., not on localhost):
Poor User Experience on Low-Bandwidth Networks: For end-users, the repeated multi-megabyte uploads make the chat feel extremely slow and unresponsive.
High Costs on Metered VPS/Cloud Platforms: This behavior generates a massive amount of server traffic. On any cloud provider where bandwidth is metered (like AWS, GCP, etc.), this can lead to unexpectedly high and unsustainable hosting costs.
Corrected & More Precise Steps to Reproduce Scenario B:
I've also realized there is a more precise way to reproduce and isolate the performance issue. The key is to focus only on the second-round interaction:
Start a new chat.
Upload a large image (e.g., >5MB) and ask an initial question (e.g., "What is this?"). Let this first interaction complete normally.
Now, open your browser's developer tools (F12) and switch to the "Network" tab.
Ask a simple, text-only follow-up question (e.g., "Tell me more.").
Observe: A new, very large POST request (e.g., ~8MB) is sent to the backend.
This revised method clearly demonstrates that the image data is being re-sent unnecessarily on the second turn, which is the core of the performance/cost issue.
I hope these clarifications are even more helpful.
@tjbck commented on GitHub (Nov 10, 2025):
Issue with having multiple tabs open should be something that can be addressed, the other payload "issue" you described is how completion endpoints are supposed to work.
@2erTwo6 commented on GitHub (Nov 10, 2025):
So, is the idea of "using Open WebUI to build an AI website like any of the commercial ones out there" just not a use case you're considering?