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
Pip Install
Open WebUI Version
0.8.11
Ollama Version (if applicable)
No response
Operating System
Mac Tahoe 26.4
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
Call api/v1/files/ to get a list of all stored files in the OWUI database.
with the correct $OPENWEBUI_BASE_MACHINE and $OPENWEBUI_API_KEY set in the environment.
Or call from the Swagger interface "list files".
Logs & Screenshots
One call give 50K log files... Not sure if it helps.
Additional Information
New in 0.8.11. 0.8.10 works.
Originally created by @wsomm on GitHub (Mar 26, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23101
### 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
Pip Install
### Open WebUI Version
0.8.11
### Ollama Version (if applicable)
_No response_
### Operating System
Mac Tahoe 26.4
### 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
Call api/v1/files/ to get a list of all stored files in the OWUI database.
### Actual Behavior
HTTP Error 500: Internal Server Error.
### Steps to Reproduce
Just call
curl -X GET "http://$OPENWEBUI_BASE_MACHINE:8080/api/v1/files/?page=1&content=true" -H "accept: application/json" -H "Authorization: Bearer $OPENWEBUI_API_KEY"
with the correct $OPENWEBUI_BASE_MACHINE and $OPENWEBUI_API_KEY set in the environment.
Or call from the Swagger interface "list files".
### Logs & Screenshots
One call give 50K log files... Not sure if it helps.
### Additional Information
New in 0.8.11. 0.8.10 works.
GiteaMirror
added the bug label 2026-04-20 02:25:07 -05:00
@yang1002378395-cmyk commented on GitHub (Mar 26, 2026):
Investigation Needed
This is a regression in v0.8.11. The /api/v1/files/ endpoint returns HTTP 500.
Likely causes:
Database schema migration issue
Missing error handling for edge cases (empty files, corrupted metadata)
Query optimization causing timeout with large file counts
Debug steps:
Check Open WebUI logs: docker logs <container> --tail 100
Check if the issue persists with a fresh database
Try with content=false to isolate the problem
Could you share the error traceback from the server logs? That would help pinpoint the exact failure point.
<!-- gh-comment-id:4136806640 -->
@yang1002378395-cmyk commented on GitHub (Mar 26, 2026):
## Investigation Needed
This is a regression in v0.8.11. The `/api/v1/files/` endpoint returns HTTP 500.
**Likely causes**:
1. Database schema migration issue
2. Missing error handling for edge cases (empty files, corrupted metadata)
3. Query optimization causing timeout with large file counts
**Debug steps**:
1. Check Open WebUI logs: `docker logs <container> --tail 100`
2. Check if the issue persists with a fresh database
3. Try with `content=false` to isolate the problem
Could you share the error traceback from the server logs? That would help pinpoint the exact failure point.
@yang1002378395-cmyk please refrain from "likely causes" ai generated comments. These are not helpful. If you're using AI to analyze issues at least analyze the code or refrain from commenting please
<!-- gh-comment-id:4137482154 -->
@Classic298 commented on GitHub (Mar 26, 2026):
@yang1002378395-cmyk please refrain from "likely causes" ai generated comments. These are not helpful. If you're using AI to analyze issues at least analyze the code or refrain from commenting please
If it helps: This is what claude code gave me as a hint:
0.8.10 — correct:
models/files.py
class FileListResponse(BaseModel):
items: list[FileModel] # ← FileModel: meta: Optional[dict] = None
total: int
FileListResponse holds FileModel objects. FileModel.meta is Optional[dict] — NULL in the database is fine. No coercion happens.
0.8.11 — broken:
models/files.py
class FileListResponse(BaseModel):
items: list[FileModelResponse] # ← changed to FileModelResponse
total: int
class FileModelResponse(BaseModel):
meta: FileMeta # ← required, NOT Optional
get_file_list() still creates list[FileModel] and passes them into FileListResponse(items=...). Pydantic v2 now coerces each FileModel → FileModelResponse at construction time. Since FileModelResponse.meta is required and
FileMeta.sanitize_meta() returns None unchanged when the DB value is NULL, Pydantic raises ValidationError → HTTP 500.
If you need addiitonal information, I cannot provide them the next 24 hours.
But I think the error itself is clear.
<!-- gh-comment-id:4137537455 -->
@wsomm commented on GitHub (Mar 26, 2026):
If it helps: This is what claude code gave me as a hint:
0.8.10 — correct:
#### models/files.py
class FileListResponse(BaseModel):
items: list[FileModel] # ← FileModel: meta: Optional[dict] = None
total: int
FileListResponse holds FileModel objects. FileModel.meta is Optional[dict] — NULL in the database is fine. No coercion happens.
---
0.8.11 — broken:
#### models/files.py
class FileListResponse(BaseModel):
items: list[FileModelResponse] # ← changed to FileModelResponse
total: int
class FileModelResponse(BaseModel):
meta: FileMeta # ← required, NOT Optional
get_file_list() still creates list[FileModel] and passes them into FileListResponse(items=...). Pydantic v2 now coerces each FileModel → FileModelResponse at construction time. Since FileModelResponse.meta is required and
FileMeta.sanitize_meta() returns None unchanged when the DB value is NULL, Pydantic raises ValidationError → HTTP 500.
---
If you need addiitonal information, I cannot provide them the next 24 hours.
But I think the error itself is clear.
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 @wsomm on GitHub (Mar 26, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23101
Check Existing Issues
Installation Method
Pip Install
Open WebUI Version
0.8.11
Ollama Version (if applicable)
No response
Operating System
Mac Tahoe 26.4
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
Call api/v1/files/ to get a list of all stored files in the OWUI database.
Actual Behavior
HTTP Error 500: Internal Server Error.
Steps to Reproduce
Just call
curl -X GET "http://$OPENWEBUI_BASE_MACHINE:8080/api/v1/files/?page=1&content=true" -H "accept: application/json" -H "Authorization: Bearer $OPENWEBUI_API_KEY"
with the correct $OPENWEBUI_BASE_MACHINE and $OPENWEBUI_API_KEY set in the environment.
Or call from the Swagger interface "list files".
Logs & Screenshots
One call give 50K log files... Not sure if it helps.
Additional Information
New in 0.8.11. 0.8.10 works.
@yang1002378395-cmyk commented on GitHub (Mar 26, 2026):
Investigation Needed
This is a regression in v0.8.11. The
/api/v1/files/endpoint returns HTTP 500.Likely causes:
Debug steps:
docker logs <container> --tail 100content=falseto isolate the problemCould you share the error traceback from the server logs? That would help pinpoint the exact failure point.
@Classic298 commented on GitHub (Mar 26, 2026):
@yang1002378395-cmyk please refrain from "likely causes" ai generated comments. These are not helpful. If you're using AI to analyze issues at least analyze the code or refrain from commenting please
@wsomm commented on GitHub (Mar 26, 2026):
If it helps: This is what claude code gave me as a hint:
0.8.10 — correct:
models/files.py
class FileListResponse(BaseModel):
items: list[FileModel] # ← FileModel: meta: Optional[dict] = None
total: int
FileListResponse holds FileModel objects. FileModel.meta is Optional[dict] — NULL in the database is fine. No coercion happens.
0.8.11 — broken:
models/files.py
class FileListResponse(BaseModel):
items: list[FileModelResponse] # ← changed to FileModelResponse
total: int
class FileModelResponse(BaseModel):
meta: FileMeta # ← required, NOT Optional
get_file_list() still creates list[FileModel] and passes them into FileListResponse(items=...). Pydantic v2 now coerces each FileModel → FileModelResponse at construction time. Since FileModelResponse.meta is required and
FileMeta.sanitize_meta() returns None unchanged when the DB value is NULL, Pydantic raises ValidationError → HTTP 500.
If you need addiitonal information, I cannot provide them the next 24 hours.
But I think the error itself is clear.
@tjbck commented on GitHub (Mar 26, 2026):
Addressed in dev.
@Classic298 commented on GitHub (Mar 26, 2026):
https://github.com/open-webui/open-webui/commit/16335f866ea4cedf00c4971963622fcc1fe02d82