[PR #23051] [CLOSED] fix: Add pagination support to /chats/all endpoint to prevent OOM #65853

Closed
opened 2026-05-06 11:51:30 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/23051
Author: @yang1002378395-cmyk
Created: 3/26/2026
Status: Closed

Base: devHead: fix-chat-oom-v2


📝 Commits (10+)

📊 Changes

1 file changed (+29 additions, -2 deletions)

View changed files

📝 backend/open_webui/routers/chats.py (+29 -2)

📄 Description

Pull Request Checklist

  • Target branch: Targets the dev branch
  • Description: Add pagination support to prevent OOM errors when loading all chats
  • Changelog: Entry added below
  • Testing: Syntax validation passed, logic follows existing pattern
  • Code review: Self-review completed
  • Git Hygiene: Single atomic fix, focused on OOM prevention

Changelog Entry

Description

Add pagination support to the /chats/all endpoint to prevent Out of Memory (OOM) errors for users with many chats.

Fixed

  • Add optional page and limit query parameters to /chats/all endpoint
  • Set default limit of 1000 to prevent memory exhaustion
  • Maintain backward compatibility - response is still a list

Added

  • Pagination parameters for chat list retrieval
  • Documentation explaining the new parameters

Additional Information

Fixes #22206

Root Cause: Users with thousands of chats were experiencing OOM errors when the /chats/all endpoint tried to load all chats into memory at once.

Solution:

  • Add optional page and limit query parameters
  • Default limit of 1000 prevents memory issues
  • Backward compatible: response format unchanged

Testing:

# Test pagination
GET /chats/all  # Returns max 1000 chats (default limit)
GET /chats/all?page=1&limit=100  # Returns first 100 chats
GET /chats/all?page=2&limit=100  # Returns next 100 chats

Contributor License Agreement


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/open-webui/open-webui/pull/23051 **Author:** [@yang1002378395-cmyk](https://github.com/yang1002378395-cmyk) **Created:** 3/26/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix-chat-oom-v2` --- ### 📝 Commits (10+) - [`fe6783c`](https://github.com/open-webui/open-webui/commit/fe6783c16699911c7be17392596d579333fb110c) Merge pull request #19030 from open-webui/dev - [`fc05e0a`](https://github.com/open-webui/open-webui/commit/fc05e0a6c5d39da60b603b4d520f800d6e36f748) Merge pull request #19405 from open-webui/dev - [`e3faec6`](https://github.com/open-webui/open-webui/commit/e3faec62c58e3a83d89aa3df539feacefa125e0c) Merge pull request #19416 from open-webui/dev - [`9899293`](https://github.com/open-webui/open-webui/commit/9899293f050ad50ae12024cbebee7e018acd851e) Merge pull request #19448 from open-webui/dev - [`140605e`](https://github.com/open-webui/open-webui/commit/140605e660b8186a7d5c79fb3be6ffb147a2f498) Merge pull request #19462 from open-webui/dev - [`6f1486f`](https://github.com/open-webui/open-webui/commit/6f1486ffd0cb288d0e21f41845361924e0d742b3) Merge pull request #19466 from open-webui/dev - [`d95f533`](https://github.com/open-webui/open-webui/commit/d95f533214e3fe5beb5e41ec1f349940bc4c7043) Merge pull request #19729 from open-webui/dev - [`a727153`](https://github.com/open-webui/open-webui/commit/a7271532f8a38da46785afcaa7e65f9a45e7d753) 0.6.43 (#20093) - [`6adde20`](https://github.com/open-webui/open-webui/commit/6adde203cd292a9e3af9c64a2ae36b603fed096a) Merge pull request #20394 from open-webui/dev - [`f9b0534`](https://github.com/open-webui/open-webui/commit/f9b0534e0c442631d1cb7205169588b9b6204179) Merge pull request #20522 from open-webui/dev ### 📊 Changes **1 file changed** (+29 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/routers/chats.py` (+29 -2) </details> ### 📄 Description # Pull Request Checklist - [x] **Target branch:** Targets the `dev` branch - [x] **Description:** Add pagination support to prevent OOM errors when loading all chats - [x] **Changelog:** Entry added below - [x] **Testing:** Syntax validation passed, logic follows existing pattern - [x] **Code review:** Self-review completed - [x] **Git Hygiene:** Single atomic fix, focused on OOM prevention # Changelog Entry ### Description Add pagination support to the `/chats/all` endpoint to prevent Out of Memory (OOM) errors for users with many chats. ### Fixed - Add optional `page` and `limit` query parameters to `/chats/all` endpoint - Set default limit of 1000 to prevent memory exhaustion - Maintain backward compatibility - response is still a list ### Added - Pagination parameters for chat list retrieval - Documentation explaining the new parameters --- ### Additional Information Fixes #22206 **Root Cause:** Users with thousands of chats were experiencing OOM errors when the `/chats/all` endpoint tried to load all chats into memory at once. **Solution:** - Add optional `page` and `limit` query parameters - Default limit of 1000 prevents memory issues - Backward compatible: response format unchanged **Testing:** ```python # Test pagination GET /chats/all # Returns max 1000 chats (default limit) GET /chats/all?page=1&limit=100 # Returns first 100 chats GET /chats/all?page=2&limit=100 # Returns next 100 chats ``` ### Contributor License Agreement - [x] By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-05-06 11:51:30 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#65853