From d735b036fe4b3f05cf4eaf62249c277818fa8be5 Mon Sep 17 00:00:00 2001 From: Athanasios Oikonomou Date: Thu, 28 Aug 2025 22:19:25 +0300 Subject: [PATCH] fix: handle unicode filenames in external document loader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Files with special characters in their names (e.g., ΓΌ.pdf) caused issues since HTTP headers only allow Latin-1 characters. This change URL-encodes `X-Filename` before adding it to request headers, preventing failures when uploading or processing such files. Fixes: #17000 --- backend/open_webui/retrieval/loaders/external_document.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/retrieval/loaders/external_document.py b/backend/open_webui/retrieval/loaders/external_document.py index c0ccd72432..1be2ca3f24 100644 --- a/backend/open_webui/retrieval/loaders/external_document.py +++ b/backend/open_webui/retrieval/loaders/external_document.py @@ -1,6 +1,7 @@ import requests import logging, os from typing import Iterator, List, Union +from urllib.parse import quote from langchain_core.document_loaders import BaseLoader from langchain_core.documents import Document @@ -37,7 +38,7 @@ class ExternalDocumentLoader(BaseLoader): headers["Authorization"] = f"Bearer {self.api_key}" try: - headers["X-Filename"] = os.path.basename(self.file_path) + headers["X-Filename"] = quote(os.path.basename(self.file_path)) except: pass