[GH-ISSUE #22458] issue: PDF parsing with /filter error #19717

Closed
opened 2026-04-20 02:14:03 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @MarceloMassarente on GitHub (Mar 8, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/22458

Check Existing Issues

  • 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

Docker

Open WebUI Version

0.8.9

Ollama Version (if applicable)

No response

Operating System

ubuntu

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

when ingesting pdf with native engine, it should extract the markdown

Actual Behavior

erros, with /filter showing in the chat on a yellow box on the top

Steps to Reproduce

just try to ingest pdf

Logs & Screenshots

2026-03-08 18:27:48.052 | ERROR | open_webui.routers.retrieval:process_file:1880 - '/Filter'

Traceback (most recent call last):

File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap

self._bootstrap_inner()

│    └ <function Thread._bootstrap_inner at 0x70e6fbe0e3e0>

└ <WorkerThread(AnyIO worker thread, started 124132867958464)>

File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner

self.run()

│    └ <function WorkerThread.run at 0x70e6510b9580>

└ <WorkerThread(AnyIO worker thread, started 124132867958464)>

File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run

result = context.run(func, *args)

         │       │   │      └ ()

         │       │   └ functools.partial(<function process_uploaded_file at 0x70e658ca5080>, <starlette.requests.Request object at 0x70e6226d8150>, ...

         │       └ <method 'run' of '_contextvars.Context' objects>

         └ <_contextvars.Context object at 0x70e63232ac40>

File "/usr/local/lib/python3.11/site-packages/open_webui/routers/files.py", line 164, in process_uploaded_file

_process_handler(db_session)

│                └ <sqlalchemy.orm.session.Session object at 0x70e6234942d0>

└ <function process_uploaded_file.<locals>._process_handler at 0x70e622bfee80>

File "/usr/local/lib/python3.11/site-packages/open_webui/routers/files.py", line 128, in _process_handler

process_file(

└ <function process_file at 0x70e656876ac0>

File "/usr/local/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1779, in process_file

docs = loader.load(

       │      ��� <function Loader.load at 0x70e656977420>

       └ <open_webui.retrieval.loaders.main.Loader object at 0x70e622d79650>

File "/usr/local/lib/python3.11/site-packages/open_webui/retrieval/loaders/main.py", line 194, in load

docs = loader.load()

       │      └ <function BaseLoader.load at 0x70e6678ba3e0>

       └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110>

File "/usr/local/lib/python3.11/site-packages/langchain_core/document_loaders/base.py", line 43, in load

return list(self.lazy_load())

            │    └ <function PyPDFLoader.lazy_load at 0x70e656930fe0>

            └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110>

File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/pdf.py", line 305, in lazy_load

yield from self.parser.lazy_parse(blob)

           │    │      │          └ Blob 124133989033424 /app/backend/data/uploads/6d6f03ac-8e0a-4d0c-960e-03b92fc9f094_2026 - Proposta Vila Nova Partners - Asse...

           │    │      └ <function PyPDFParser.lazy_parse at 0x70e6569dba60>

           │    └ <langchain_community.document_loaders.parsers.pdf.PyPDFParser object at 0x70e63265a290>

           └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110>

File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/parsers/pdf.py", line 397, in lazy_parse

images_from_page = self.extract_images_from_page(page)

                   │    │                        └ {'/Type': '/Page', '/Parent': IndirectObject(2, 0, 124133722406800), '/Resources': {'/ExtGState': {'/GS6': IndirectObject(6, ...

                   │    └ <function PyPDFParser.extract_images_from_page at 0x70e6569dbb00>

                   └ <langchain_community.document_loaders.parsers.pdf.PyPDFParser object at 0x70e63265a290>

File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/parsers/pdf.py", line 444, in extract_images_from_page

if type(xObject[obj]["/Filter"]) is pypdf.generic._base.NameObject

        │       │                   │     │       │     └ <class 'pypdf.generic._base.NameObject'>

        │       │                   │     │       └ <module 'pypdf.generic._base' from '/usr/local/lib/python3.11/site-packages/pypdf/generic/_base.py'>

        │       │                   │     └ <module 'pypdf.generic' from '/usr/local/lib/python3.11/site-packages/pypdf/generic/__init__.py'>

        │       │                   └ <module 'pypdf' from '/usr/local/lib/python3.11/site-packages/pypdf/__init__.py'>

        │       └ '/Image13'

        └ {'/Image7': IndirectObject(7, 0, 124133722406800), '/Image8': IndirectObject(8, 0, 124133722406800), '/Image11': IndirectObje...

File "/usr/local/lib/python3.11/site-packages/pypdf/generic/_data_structures.py", line 472, in getitem

return dict.__getitem__(self, key).get_object()

                        │     └ '/Filter'

                        └ {'/Type': '/XObject', '/Subtype': '/Image', '/Width': 2, '/Height': 2, '/ColorSpace': ['/Indexed', '/DeviceRGB', 1, 'ÿÿÿÿÿÿ']...

KeyError: '/Filter'

2026-03-08 18:27:48.057 | ERROR | open_webui.routers.files:_process_handler:150 - Error processing file: 6d6f03ac-8e0a-4d0c-960e-03b92fc9f094

Additional Information

No response

Originally created by @MarceloMassarente on GitHub (Mar 8, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/22458 ### 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 Docker ### Open WebUI Version 0.8.9 ### Ollama Version (if applicable) _No response_ ### Operating System ubuntu ### 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 when ingesting pdf with native engine, it should extract the markdown ### Actual Behavior erros, with /filter showing in the chat on a yellow box on the top ### Steps to Reproduce just try to ingest pdf ### Logs & Screenshots 2026-03-08 18:27:48.052 | ERROR | open_webui.routers.retrieval:process_file:1880 - '/Filter' Traceback (most recent call last): File "/usr/local/lib/python3.11/threading.py", line 1002, in _bootstrap self._bootstrap_inner() │ └ <function Thread._bootstrap_inner at 0x70e6fbe0e3e0> └ <WorkerThread(AnyIO worker thread, started 124132867958464)> File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner self.run() │ └ <function WorkerThread.run at 0x70e6510b9580> └ <WorkerThread(AnyIO worker thread, started 124132867958464)> File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 986, in run result = context.run(func, *args) │ │ │ └ () │ │ └ functools.partial(<function process_uploaded_file at 0x70e658ca5080>, <starlette.requests.Request object at 0x70e6226d8150>, ... │ └ <method 'run' of '_contextvars.Context' objects> └ <_contextvars.Context object at 0x70e63232ac40> File "/usr/local/lib/python3.11/site-packages/open_webui/routers/files.py", line 164, in process_uploaded_file _process_handler(db_session) │ └ <sqlalchemy.orm.session.Session object at 0x70e6234942d0> └ <function process_uploaded_file.<locals>._process_handler at 0x70e622bfee80> File "/usr/local/lib/python3.11/site-packages/open_webui/routers/files.py", line 128, in _process_handler process_file( └ <function process_file at 0x70e656876ac0> > File "/usr/local/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1779, in process_file docs = loader.load( │ ��� <function Loader.load at 0x70e656977420> └ <open_webui.retrieval.loaders.main.Loader object at 0x70e622d79650> File "/usr/local/lib/python3.11/site-packages/open_webui/retrieval/loaders/main.py", line 194, in load docs = loader.load() │ └ <function BaseLoader.load at 0x70e6678ba3e0> └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110> File "/usr/local/lib/python3.11/site-packages/langchain_core/document_loaders/base.py", line 43, in load return list(self.lazy_load()) │ └ <function PyPDFLoader.lazy_load at 0x70e656930fe0> └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110> File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/pdf.py", line 305, in lazy_load yield from self.parser.lazy_parse(blob) │ │ │ └ Blob 124133989033424 /app/backend/data/uploads/6d6f03ac-8e0a-4d0c-960e-03b92fc9f094_2026 - Proposta Vila Nova Partners - Asse... │ │ └ <function PyPDFParser.lazy_parse at 0x70e6569dba60> │ └ <langchain_community.document_loaders.parsers.pdf.PyPDFParser object at 0x70e63265a290> └ <langchain_community.document_loaders.pdf.PyPDFLoader object at 0x70e622a59110> File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/parsers/pdf.py", line 397, in lazy_parse images_from_page = self.extract_images_from_page(page) │ │ └ {'/Type': '/Page', '/Parent': IndirectObject(2, 0, 124133722406800), '/Resources': {'/ExtGState': {'/GS6': IndirectObject(6, ... │ └ <function PyPDFParser.extract_images_from_page at 0x70e6569dbb00> └ <langchain_community.document_loaders.parsers.pdf.PyPDFParser object at 0x70e63265a290> File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/parsers/pdf.py", line 444, in extract_images_from_page if type(xObject[obj]["/Filter"]) is pypdf.generic._base.NameObject │ │ │ │ │ └ <class 'pypdf.generic._base.NameObject'> │ │ │ │ └ <module 'pypdf.generic._base' from '/usr/local/lib/python3.11/site-packages/pypdf/generic/_base.py'> │ │ │ └ <module 'pypdf.generic' from '/usr/local/lib/python3.11/site-packages/pypdf/generic/__init__.py'> │ │ └ <module 'pypdf' from '/usr/local/lib/python3.11/site-packages/pypdf/__init__.py'> │ └ '/Image13' └ {'/Image7': IndirectObject(7, 0, 124133722406800), '/Image8': IndirectObject(8, 0, 124133722406800), '/Image11': IndirectObje... File "/usr/local/lib/python3.11/site-packages/pypdf/generic/_data_structures.py", line 472, in __getitem__ return dict.__getitem__(self, key).get_object() │ └ '/Filter' └ {'/Type': '/XObject', '/Subtype': '/Image', '/Width': 2, '/Height': 2, '/ColorSpace': ['/Indexed', '/DeviceRGB', 1, 'ÿÿÿÿÿÿ']... KeyError: '/Filter' 2026-03-08 18:27:48.057 | ERROR | open_webui.routers.files:_process_handler:150 - Error processing file: 6d6f03ac-8e0a-4d0c-960e-03b92fc9f094 ### Additional Information _No response_
GiteaMirror added the bug label 2026-04-20 02:14:03 -05:00
Author
Owner

@tjbck commented on GitHub (Mar 8, 2026):

This is an upstream bug in langchain-community's PyPDFParser.extract_images_from_page — it accesses xObject[obj]["/Filter"] without checking for key existence; please report it to langchain-community or pypdf, and as a workaround you can disable "Extract Images from PDF" in Admin → Settings → Documents.

<!-- gh-comment-id:4020142329 --> @tjbck commented on GitHub (Mar 8, 2026): This is an upstream bug in langchain-community's PyPDFParser.extract_images_from_page — it accesses xObject[obj]["/Filter"] without checking for key existence; please report it to [langchain-community](https://github.com/langchain-ai/langchain/issues) or [pypdf](https://github.com/py-pdf/pypdf/issues), and as a workaround you can disable "Extract Images from PDF" in Admin → Settings → Documents.
Author
Owner

@MarceloMassarente commented on GitHub (Mar 9, 2026):

Thanks.
But do you know why this didn't happen before? did something change in OWUI
regarding how PyPDF is used?
regards

On Sun, Mar 8, 2026 at 7:20 PM Tim Baek @.***> wrote:

tjbck left a comment (open-webui/open-webui#22458)
https://github.com/open-webui/open-webui/issues/22458#issuecomment-4020142329

This is an upstream bug in langchain-community's
PyPDFParser.extract_images_from_page — it accesses xObject[obj]["/Filter"]
without checking for key existence; please report it to
langchain-community https://github.com/langchain-ai/langchain/issues or
pypdf https://github.com/py-pdf/pypdf/issues, and as a workaround you
can disable "Extract Images from PDF" in Admin → Settings → Documents.


Reply to this email directly, view it on GitHub
https://github.com/open-webui/open-webui/issues/22458#issuecomment-4020142329,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BTVKKPVFBMM4Q5XLSP7OXKT4PXW3HAVCNFSM6AAAAACWLFTLT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DAMRQGE2DEMZSHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

<!-- gh-comment-id:4021911220 --> @MarceloMassarente commented on GitHub (Mar 9, 2026): Thanks. But do you know why this didn't happen before? did something change in OWUI regarding how PyPDF is used? regards On Sun, Mar 8, 2026 at 7:20 PM Tim Baek ***@***.***> wrote: > *tjbck* left a comment (open-webui/open-webui#22458) > <https://github.com/open-webui/open-webui/issues/22458#issuecomment-4020142329> > > This is an upstream bug in langchain-community's > PyPDFParser.extract_images_from_page — it accesses xObject[obj]["/Filter"] > without checking for key existence; please report it to > langchain-community <https://github.com/langchain-ai/langchain/issues> or > pypdf <https://github.com/py-pdf/pypdf/issues>, and as a workaround you > can disable "Extract Images from PDF" in Admin → Settings → Documents. > > — > Reply to this email directly, view it on GitHub > <https://github.com/open-webui/open-webui/issues/22458#issuecomment-4020142329>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/BTVKKPVFBMM4Q5XLSP7OXKT4PXW3HAVCNFSM6AAAAACWLFTLT6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DAMRQGE2DEMZSHE> > . > You are receiving this because you authored the thread.Message ID: > ***@***.***> >
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#19717