mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 19:38:46 -05:00
[GH-ISSUE #19519] issue: Base64 encoded images included in API responses #34440
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 @luke-wren on GitHub (Nov 26, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/19519
Check Existing Issues
Installation Method
Docker
Open WebUI Version
0.6.40
Ollama Version (if applicable)
No response
Operating System
Amazon Linux 2023
Browser (if applicable)
Chrome 142.0.7444.60
Confirmation
README.md.Expected Behavior
API responses that include user avatars should return a URL (or relative path) to the image, not an inlined base64 encoded image. This allows the browser and any intermediate caches to reuse the image rather than re-sending it on every request.
Several endpoints currently include a user object in their payloads. I would expect the profile_image_url field on that object to be a URL, similar to:
"user": {
"id": "c77a1139-75e1-4392-ab1c-1a2e8c69b086",
"name": "User",
"email": "user@example.com",
"role": "admin",
"profile_image_url": "/path/to/avatar.png"
}
For comparison, the model metadata returned from /api/v1/models/list already uses profile_image_url as a relative URL to an image, which is the behaviour I would expect for the user object as well.
Endpoints where I have observed this issue with the user object include:
Actual Behavior
In API payloads, the user.profile_image_url field often contains a large base64 encoded image instead of a URL.
For users with high resolution avatars, this can inflate the response size significantly. In my case, some responses are over 23 MB purely due to repeated base64 avatar data.
Steps to Reproduce
These steps focus on /api/v1/models/list, but the behaviour is similar on other endpoints that include a user object.
• Note: Open WebUI crops uploaded avatars to 250x250, but IdP synced avatars are not cropped.
Logs & Screenshots
Additional Information
When a user uploads their own avatar, Open WebUI crops it to 250x250, which helps limit the maximum file size.
However, when user avatars are synced from a third party identity provider (Azure Entra ID in my case), they are not cropped. Some of these synced avatars are large (for example, 2000x2000), which results in very large base64 blobs being embedded into API responses wherever the user object is included.
This combination of uncropped high resolution avatars and base64 inlining in multiple endpoints leads to very large response sizes and unnecessary bandwidth usage.
@tjbck commented on GitHub (Nov 27, 2025):
Should be addressed with
384753c6cain dev!@silentoplayz commented on GitHub (Nov 30, 2025):
Can this be closed?