mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-10 23:55:15 -05:00
[PR #24461] [MERGED] fix: stream GET /chats/all to prevent OOM on large chat histories #131331
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?
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/24461
Author: @Classic298
Created: 5/8/2026
Status: ✅ Merged
Merged: 5/8/2026
Merged by: @tjbck
Base:
dev← Head:fix/stream-chats-all-export📝 Commits (1)
16c6613fix: stream GET /chats/all to prevent OOM on large chat histories📊 Changes
2 files changed (+78 additions, -24 deletions)
View changed files
📝
backend/open_webui/routers/chats.py(+39 -4)📝
src/lib/apis/chats/index.ts(+39 -20)📄 Description
Convert the /chats/all endpoint from loading all user chats into memory at once to a streaming NDJSON response that fetches chats in batches of
100. This prevents Out-of-Memory crashes for users with large chat histories.
Backend: Added async generator that paginates through chats with short-lived DB sessions per batch (critical for SQLite lock release).
Frontend: Updated getAllChats to consume the NDJSON stream via ReadableStream reader, accumulating results for the export file.
Ref: open-webui#22206
Contributor License Agreement
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.