issue: Error when uploading MSG email file: "extract-msg not installed, please install it with pip install extract-msg" #5952

Closed
opened 2025-11-11 16:40:01 -06:00 by GiteaMirror · 3 comments
Owner

Originally created by @Maximilian-Pichler on GitHub (Aug 4, 2025).

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.18

Ollama Version (if applicable)

Operating System

linux

Browser (if applicable)

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 I start a new chat in Open Web UI and attempt to upload an email file (.msg) I receive the following error message:

extract-msg not installed, please install it with pip install extract-msg

Actual Behavior

The following errormessage is shown (logs below)

extract_msg is not installed. Please install it with `pip install extract_msg`

Steps to Reproduce

To Reproduce
Steps to reproduce the behavior:

  1. Open Open Web UI and start a new chat.
  2. Download an email in MSG format.
  3. Try to upload the .msg file by drag-and-drop or using the file upload button.
  4. Observe the error message.
  5. Expected behavior
  6. MSG files should be processed

Logs & Screenshots

2025-08-04 06:24:59.248 | INFO     | open_webui.routers.files:upload_file:95 - file.content_type: application/octet-stream - {}
2025-08-04 06:24:59.256 | ERROR    | open_webui.routers.retrieval:process_file:1515 - extract_msg is not installed. Please install it with `pip install extract_msg` - {}
Traceback (most recent call last):

  File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 99, in __init__
    import extract_msg  # noqa:F401

ModuleNotFoundError: No module named 'extract_msg'


During handling of the above exception, another exception occurred:


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 0x7f2b331309a0>
    └ <WorkerThread(AnyIO worker thread, started 139821116815040)>
  File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
    self.run()
    │    └ <function WorkerThread.run at 0x7f2afd18e7a0>
    └ <WorkerThread(AnyIO worker thread, started 139821116815040)>
  File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
    result = context.run(func, *args)
             │       │   │      └ ()
             │       │   └ functools.partial(<function upload_file at 0x7f2b07fce8e0>, user=UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='m...
             │       └ <method 'run' of '_contextvars.Context' objects>
             └ <_contextvars.Context object at 0x7f2af5c5d440>

  File "/app/backend/open_webui/routers/files.py", line 183, in upload_file
    process_file(request, ProcessFileForm(file_id=id), user=user)
    │            │        │                       │         └ UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='max', email='max_pichler@hotmail.de', role='admin', profile_image_...
    │            │        │                       └ 'fee7a9f5-1fec-48a2-bc1b-a262618468f6'
    │            │        └ <class 'open_webui.routers.retrieval.ProcessFileForm'>
    │            └ <starlette.requests.Request object at 0x7f2af5c78710>
    └ <function process_file at 0x7f2b052272e0>

> File "/app/backend/open_webui/routers/retrieval.py", line 1434, in process_file
    docs = loader.load(
           │      └ <function Loader.load at 0x7f2b05cf9940>
           └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0>

  File "/app/backend/open_webui/retrieval/loaders/main.py", line 217, in load
    loader = self._get_loader(filename, file_content_type, file_path)
             │    │           │         │                  └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel...
             │    │           │         └ 'application/octet-stream'
             │    │           └ 'AW_ Einreichung von Rechnungen für ambulante Behandlung – Weltreise-Krankenschutz.msg'
             │    └ <function Loader._get_loader at 0x7f2b05cf9a80>
             └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0>

  File "/app/backend/open_webui/retrieval/loaders/main.py", line 394, in _get_loader
    loader = OutlookMessageLoader(file_path)
             │                    └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel...
             └ <class 'langchain_community.document_loaders.email.OutlookMessageLoader'>

  File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 101, in __init__
    raise ImportError(

ImportError: extract_msg is not installed. Please install it with `pip install extract_msg`
2025-08-04 06:24:59.258 | ERROR    | open_webui.routers.files:upload_file:192 - 400: extract_msg is not installed. Please install it with `pip install extract_msg` - {}
Traceback (most recent call last):

  File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 99, in __init__
    import extract_msg  # noqa:F401

ModuleNotFoundError: No module named 'extract_msg'


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/app/backend/open_webui/routers/retrieval.py", line 1434, in process_file
    docs = loader.load(
           │      └ <function Loader.load at 0x7f2b05cf9940>
           └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0>

  File "/app/backend/open_webui/retrieval/loaders/main.py", line 217, in load
    loader = self._get_loader(filename, file_content_type, file_path)
             │    │           │         │                  └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel...
             │    │           │         └ 'application/octet-stream'
             │    │           └ 'AW_ Einreichung von Rechnungen für ambulante Behandlung – Weltreise-Krankenschutz.msg'
             │    └ <function Loader._get_loader at 0x7f2b05cf9a80>
             └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0>

  File "/app/backend/open_webui/retrieval/loaders/main.py", line 394, in _get_loader
    loader = OutlookMessageLoader(file_path)
             │                    └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel...
             └ <class 'langchain_community.document_loaders.email.OutlookMessageLoader'>

  File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 101, in __init__
    raise ImportError(

ImportError: extract_msg is not installed. Please install it with `pip install extract_msg`


During handling of the above exception, another exception occurred:


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 0x7f2b331309a0>
    └ <WorkerThread(AnyIO worker thread, started 139821116815040)>
  File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
    self.run()
    │    └ <function WorkerThread.run at 0x7f2afd18e7a0>
    └ <WorkerThread(AnyIO worker thread, started 139821116815040)>
  File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run
    result = context.run(func, *args)
             │       │   │      └ ()
             │       │   └ functools.partial(<function upload_file at 0x7f2b07fce8e0>, user=UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='m...
             │       └ <method 'run' of '_contextvars.Context' objects>
             └ <_contextvars.Context object at 0x7f2af5c5d440>

> File "/app/backend/open_webui/routers/files.py", line 183, in upload_file
    process_file(request, ProcessFileForm(file_id=id), user=user)
    │            │        │                       │         └ UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='max', email='max_pichler@hotmail.de', role='admin', profile_image_...
    │            │        │                       └ 'fee7a9f5-1fec-48a2-bc1b-a262618468f6'
    │            │        └ <class 'open_webui.routers.retrieval.ProcessFileForm'>
    │            └ <starlette.requests.Request object at 0x7f2af5c78710>
    └ <function process_file at 0x7f2b052272e0>

  File "/app/backend/open_webui/routers/retrieval.py", line 1522, in process_file
    raise HTTPException(
          └ <class 'fastapi.exceptions.HTTPException'>

fastapi.exceptions.HTTPException: 400: extract_msg is not installed. Please install it with `pip install extract_msg`
2025-08-04 06:24:59.259 | ERROR    | open_webui.routers.files:upload_file:193 - Error processing file: fee7a9f5-1fec-48a2-bc1b-a262618468f6 - {}

Additional Information

Additional Info:

  • in case this is relevant: have tested this on 2 systems, one configured with mistral-ocr, the other with azure-document-intelligence.
Originally created by @Maximilian-Pichler on GitHub (Aug 4, 2025). ### Check Existing Issues - [x] I have searched the existing issues and discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.18 ### Ollama Version (if applicable) - ### Operating System linux ### Browser (if applicable) - ### 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 I start a new chat in Open Web UI and attempt to upload an email file (.msg) I receive the following error message: ``` extract-msg not installed, please install it with pip install extract-msg ``` ### Actual Behavior The following errormessage is shown (logs below) ``` extract_msg is not installed. Please install it with `pip install extract_msg` ``` ### Steps to Reproduce **To Reproduce** Steps to reproduce the behavior: 1. Open Open Web UI and start a new chat. 2. Download an email in MSG format. 3. Try to upload the .msg file by drag-and-drop or using the file upload button. 4. Observe the error message. 5. Expected behavior 6. MSG files should be processed ### Logs & Screenshots ``` 2025-08-04 06:24:59.248 | INFO | open_webui.routers.files:upload_file:95 - file.content_type: application/octet-stream - {} 2025-08-04 06:24:59.256 | ERROR | open_webui.routers.retrieval:process_file:1515 - extract_msg is not installed. Please install it with `pip install extract_msg` - {} Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 99, in __init__ import extract_msg # noqa:F401 ModuleNotFoundError: No module named 'extract_msg' During handling of the above exception, another exception occurred: 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 0x7f2b331309a0> └ <WorkerThread(AnyIO worker thread, started 139821116815040)> File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner self.run() │ └ <function WorkerThread.run at 0x7f2afd18e7a0> └ <WorkerThread(AnyIO worker thread, started 139821116815040)> File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) │ │ │ └ () │ │ └ functools.partial(<function upload_file at 0x7f2b07fce8e0>, user=UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='m... │ └ <method 'run' of '_contextvars.Context' objects> └ <_contextvars.Context object at 0x7f2af5c5d440> File "/app/backend/open_webui/routers/files.py", line 183, in upload_file process_file(request, ProcessFileForm(file_id=id), user=user) │ │ │ │ └ UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='max', email='max_pichler@hotmail.de', role='admin', profile_image_... │ │ │ └ 'fee7a9f5-1fec-48a2-bc1b-a262618468f6' │ │ └ <class 'open_webui.routers.retrieval.ProcessFileForm'> │ └ <starlette.requests.Request object at 0x7f2af5c78710> └ <function process_file at 0x7f2b052272e0> > File "/app/backend/open_webui/routers/retrieval.py", line 1434, in process_file docs = loader.load( │ └ <function Loader.load at 0x7f2b05cf9940> └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0> File "/app/backend/open_webui/retrieval/loaders/main.py", line 217, in load loader = self._get_loader(filename, file_content_type, file_path) │ │ │ │ └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel... │ │ │ └ 'application/octet-stream' │ │ └ 'AW_ Einreichung von Rechnungen für ambulante Behandlung – Weltreise-Krankenschutz.msg' │ └ <function Loader._get_loader at 0x7f2b05cf9a80> └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0> File "/app/backend/open_webui/retrieval/loaders/main.py", line 394, in _get_loader loader = OutlookMessageLoader(file_path) │ └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel... └ <class 'langchain_community.document_loaders.email.OutlookMessageLoader'> File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 101, in __init__ raise ImportError( ImportError: extract_msg is not installed. Please install it with `pip install extract_msg` 2025-08-04 06:24:59.258 | ERROR | open_webui.routers.files:upload_file:192 - 400: extract_msg is not installed. Please install it with `pip install extract_msg` - {} Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 99, in __init__ import extract_msg # noqa:F401 ModuleNotFoundError: No module named 'extract_msg' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/app/backend/open_webui/routers/retrieval.py", line 1434, in process_file docs = loader.load( │ └ <function Loader.load at 0x7f2b05cf9940> └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0> File "/app/backend/open_webui/retrieval/loaders/main.py", line 217, in load loader = self._get_loader(filename, file_content_type, file_path) │ │ │ │ └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel... │ │ │ └ 'application/octet-stream' │ │ └ 'AW_ Einreichung von Rechnungen für ambulante Behandlung – Weltreise-Krankenschutz.msg' │ └ <function Loader._get_loader at 0x7f2b05cf9a80> └ <open_webui.retrieval.loaders.main.Loader object at 0x7f2ab2b8b1d0> File "/app/backend/open_webui/retrieval/loaders/main.py", line 394, in _get_loader loader = OutlookMessageLoader(file_path) │ └ '/app/backend/data/uploads/fee7a9f5-1fec-48a2-bc1b-a262618468f6_AW_ Einreichung von Rechnungen für ambulante Behandlung – Wel... └ <class 'langchain_community.document_loaders.email.OutlookMessageLoader'> File "/usr/local/lib/python3.11/site-packages/langchain_community/document_loaders/email.py", line 101, in __init__ raise ImportError( ImportError: extract_msg is not installed. Please install it with `pip install extract_msg` During handling of the above exception, another exception occurred: 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 0x7f2b331309a0> └ <WorkerThread(AnyIO worker thread, started 139821116815040)> File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner self.run() │ └ <function WorkerThread.run at 0x7f2afd18e7a0> └ <WorkerThread(AnyIO worker thread, started 139821116815040)> File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 967, in run result = context.run(func, *args) │ │ │ └ () │ │ └ functools.partial(<function upload_file at 0x7f2b07fce8e0>, user=UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='m... │ └ <method 'run' of '_contextvars.Context' objects> └ <_contextvars.Context object at 0x7f2af5c5d440> > File "/app/backend/open_webui/routers/files.py", line 183, in upload_file process_file(request, ProcessFileForm(file_id=id), user=user) │ │ │ │ └ UserModel(id='4119c6b9-6a71-4216-b7df-d2880af6e60a', name='max', email='max_pichler@hotmail.de', role='admin', profile_image_... │ │ │ └ 'fee7a9f5-1fec-48a2-bc1b-a262618468f6' │ │ └ <class 'open_webui.routers.retrieval.ProcessFileForm'> │ └ <starlette.requests.Request object at 0x7f2af5c78710> └ <function process_file at 0x7f2b052272e0> File "/app/backend/open_webui/routers/retrieval.py", line 1522, in process_file raise HTTPException( └ <class 'fastapi.exceptions.HTTPException'> fastapi.exceptions.HTTPException: 400: extract_msg is not installed. Please install it with `pip install extract_msg` 2025-08-04 06:24:59.259 | ERROR | open_webui.routers.files:upload_file:193 - Error processing file: fee7a9f5-1fec-48a2-bc1b-a262618468f6 - {} ``` ### Additional Information Additional Info: - in case this is relevant: have tested this on 2 systems, one configured with mistral-ocr, the other with azure-document-intelligence.
GiteaMirror added the bug label 2025-11-11 16:40:01 -06:00
Author
Owner

@rgaricano commented on GitHub (Aug 4, 2025):

One month ago was a discussion about the license of that lib (extract_msg), I think that there isn't any problem with it, but it was removed from install it.
https://github.com/open-webui/open-webui/discussions/15400

@rgaricano commented on GitHub (Aug 4, 2025): One month ago was a discussion about the license of that lib (extract_msg), I think that there isn't any problem with it, but it was removed from install it. https://github.com/open-webui/open-webui/discussions/15400
Author
Owner

@tjbck commented on GitHub (Aug 4, 2025):

Intended behaviour, you should install the dependency on your own.

@tjbck commented on GitHub (Aug 4, 2025): Intended behaviour, you should install the dependency on your own.
Author
Owner

@Maximilian-Pichler commented on GitHub (Aug 4, 2025):

thanks for the quick response!

@Maximilian-Pichler commented on GitHub (Aug 4, 2025): thanks for the quick response!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#5952