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:
Open Open Web UI and start a new chat.
Download an email in MSG format.
Try to upload the .msg file by drag-and-drop or using the file upload button.
Observe the error message.
Expected behavior
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
@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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @Maximilian-Pichler on GitHub (Aug 4, 2025).
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.18
Ollama Version (if applicable)
Operating System
linux
Browser (if applicable)
Confirmation
README.md.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:
Actual Behavior
The following errormessage is shown (logs below)
Steps to Reproduce
To Reproduce
Steps to reproduce the behavior:
Logs & Screenshots
Additional Information
Additional Info:
@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
@tjbck commented on GitHub (Aug 4, 2025):
Intended behaviour, you should install the dependency on your own.
@Maximilian-Pichler commented on GitHub (Aug 4, 2025):
thanks for the quick response!