From e9cb194f464bf0a3c6bf9b30ef4308efe5e4c3a5 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Thu, 5 Nov 2026 13:47:16 +0100 Subject: [PATCH] fix: large spreadsheet upload takes minutes and stalls the server (#33770) Uploading a big, sparsely filled .xlsx sent the document parser into a very slow table-detection step; a 28,000-row sheet took around 13 minutes, long enough for health checks to fail and pods to be restarted. Spreadsheets are now read as a whole sheet without that step, which took a 2,500-row sheet from 17.6 s to about 1 s with identical text. Sheets that hold several separate tables on one sheet now come out as one block instead of one block per table. Fixes #33768 --- backend/open_webui/retrieval/loaders/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/retrieval/loaders/main.py b/backend/open_webui/retrieval/loaders/main.py index 6e1f9fc047..de89638fc4 100644 --- a/backend/open_webui/retrieval/loaders/main.py +++ b/backend/open_webui/retrieval/loaders/main.py @@ -785,7 +785,8 @@ class Loader: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', ] or file_ext in ['xls', 'xlsx']: try: - loader = UnstructuredLoader(file_path, 'xlsx') + # Subtable detection is very slow on large sparse sheets. + loader = UnstructuredLoader(file_path, 'xlsx', find_subtable=False) except ImportError: log.warning( "The 'unstructured' package is not installed. "