issue: ModuleNotFoundError: No module named 'itsdangerous' #6436

Closed
opened 2025-11-11 16:54:58 -06:00 by GiteaMirror · 14 comments
Owner

Originally created by @HarukaRepo on GitHub (Sep 18, 2025).

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Pip Install

Open WebUI Version

v0.6.25

Ollama Version (if applicable)

0.11.6

Operating System

Windows 11

Browser (if applicable)

140.0.7339.128

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 open-webui, and the script has already auto-updated openwebui.

Actual Behavior

The package is already installed in venv open-webui, but the console says this: ModuleNotFoundError: No module named 'itsdangerous'

Steps to Reproduce

  1. Install Python 3.12.8,
  2. update pip to new version
  3. install openWebUI via pip
  4. open-webui is up to date script
  5. There were no errors before, only today's latest update caused errors.

Logs & Screenshots

Installed 265 packages in 9.16s
Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Loading WEBUI_SECRET_KEY from F:\AI\WebUI.webui_secret_key
╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮
│ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\open_webui_init_.py:75 in │
│ serve │
│ │
│ 72 │ │ │ os.environ["USE_CUDA_DOCKER"] = "false" ╭───── locals ─────╮ │
│ 73 │ │ │ os.environ["LD_LIBRARY_PATH"] = ":".join(LD_LIBRARY_PATH) │ host = '0.0.0.0' │ │
│ 74 │ │ port = 8080 │ │
│ ❱ 75 │ import open_webui.main # we need set environment variables before importing main ╰──────────────────╯ │
│ 76 │ from open_webui.env import UVICORN_WORKERS # Import the workers setting │
│ 77 │ │
│ 78 │ uvicorn.run( │
│ │
│ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\open_webui\main.py:49 in │
│ │
│ │
│ 46 │
│ 47 from starlette.exceptions import HTTPException as StarletteHTTPException │
│ 48 from starlette.middleware.base import BaseHTTPMiddleware │
│ ❱ 49 from starlette.middleware.sessions import SessionMiddleware │
│ 50 from starlette.responses import Response, StreamingResponse │
│ 51 from starlette.datastructures import Headers │
│ 52 │
│ │
│ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │
│ │ aiohttp = <module 'aiohttp' from │ │
│ │ 'C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packag… │ │
│ │ anyio = <module 'anyio' from │ │
│ │ 'C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packag… │ │
│ │ applications = <module 'fastapi.applications' from │ │
│ │ 'C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packag… │ │
│ │ asyncio = <module 'asyncio' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\asyncio\init.py'> │ │
│ │ inspect = <module 'inspect' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\inspect.py'> │ │
│ │ json = <module 'json' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\json\init.py'> │ │
│ │ logging = <module 'logging' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\logging\init.py'> │ │
│ │ mimetypes = <module 'mimetypes' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\mimetypes.py'> │ │
│ │ Optional = typing.Optional │ │
│ │ os = <module 'os' (frozen)> │ │
│ │ random = <module 'random' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\random.py'> │ │
│ │ requests = <module 'requests' from │ │
│ │ 'C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packag… │ │
│ │ shutil = <module 'shutil' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\shutil.py'> │ │
│ │ status = <module 'starlette.status' from │ │
│ │ 'C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packag… │ │
│ │ sys = <module 'sys' (built-in)> │ │
│ │ time = <module 'time' (built-in)> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
│ │
│ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\starlette\middleware\session │
│ s.py:7 in │
│ │
│ 4 import typing │
│ 5 from base64 import b64decode, b64encode │
│ 6 │
│ ❱ 7 import itsdangerous │
│ 8 from itsdangerous.exc import BadSignature │
│ 9 │
│ 10 from starlette.datastructures import MutableHeaders, Secret │
│ │
│ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │
│ │ annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) │ │
│ │ json = <module 'json' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\json\init.py'> │ │
│ │ typing = <module 'typing' from │ │
│ │ 'C:\Users\USER\AppData\Local\Programs\Python\Python311\Lib\typing.py'> │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'itsdangerous'
Press any key to continue . . .

Additional Information

No response

Originally created by @HarukaRepo on GitHub (Sep 18, 2025). ### 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 am using the latest version of Open WebUI. ### Installation Method Pip Install ### Open WebUI Version v0.6.25 ### Ollama Version (if applicable) 0.11.6 ### Operating System Windows 11 ### Browser (if applicable) 140.0.7339.128 ### 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 open-webui, and the script has already auto-updated openwebui. ### Actual Behavior The package is already installed in venv open-webui, but the console says this: ModuleNotFoundError: No module named 'itsdangerous' ### Steps to Reproduce 1. Install Python 3.12.8, 2. update pip to new version 3. install openWebUI via pip 4. open-webui is up to date script 5. There were no errors before, only today's latest update caused errors. ### Logs & Screenshots Installed 265 packages in 9.16s Loading WEBUI_SECRET_KEY from file, not provided as an environment variable. Loading WEBUI_SECRET_KEY from F:\AI\WebUI\.webui_secret_key ╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮ │ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\open_webui\__init__.py:75 in │ │ serve │ │ │ │ 72 │ │ │ os.environ["USE_CUDA_DOCKER"] = "false" ╭───── locals ─────╮ │ │ 73 │ │ │ os.environ["LD_LIBRARY_PATH"] = ":".join(LD_LIBRARY_PATH) │ host = '0.0.0.0' │ │ │ 74 │ │ port = 8080 │ │ │ ❱ 75 │ import open_webui.main # we need set environment variables before importing main ╰──────────────────╯ │ │ 76 │ from open_webui.env import UVICORN_WORKERS # Import the workers setting │ │ 77 │ │ │ 78 │ uvicorn.run( │ │ │ │ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\open_webui\main.py:49 in │ │ <module> │ │ │ │ 46 │ │ 47 from starlette.exceptions import HTTPException as StarletteHTTPException │ │ 48 from starlette.middleware.base import BaseHTTPMiddleware │ │ ❱ 49 from starlette.middleware.sessions import SessionMiddleware │ │ 50 from starlette.responses import Response, StreamingResponse │ │ 51 from starlette.datastructures import Headers │ │ 52 │ │ │ │ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │ │ │ aiohttp = <module 'aiohttp' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\uv\\cache\\archive-v0\\2OjspJyap3n_yX0XGlRR2\\Lib\\site-packag… │ │ │ │ anyio = <module 'anyio' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\uv\\cache\\archive-v0\\2OjspJyap3n_yX0XGlRR2\\Lib\\site-packag… │ │ │ │ applications = <module 'fastapi.applications' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\uv\\cache\\archive-v0\\2OjspJyap3n_yX0XGlRR2\\Lib\\site-packag… │ │ │ │ asyncio = <module 'asyncio' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\asyncio\\__init__.py'> │ │ │ │ inspect = <module 'inspect' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\inspect.py'> │ │ │ │ json = <module 'json' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\json\\__init__.py'> │ │ │ │ logging = <module 'logging' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\logging\\__init__.py'> │ │ │ │ mimetypes = <module 'mimetypes' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\mimetypes.py'> │ │ │ │ Optional = typing.Optional │ │ │ │ os = <module 'os' (frozen)> │ │ │ │ random = <module 'random' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\random.py'> │ │ │ │ requests = <module 'requests' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\uv\\cache\\archive-v0\\2OjspJyap3n_yX0XGlRR2\\Lib\\site-packag… │ │ │ │ shutil = <module 'shutil' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\shutil.py'> │ │ │ │ status = <module 'starlette.status' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\uv\\cache\\archive-v0\\2OjspJyap3n_yX0XGlRR2\\Lib\\site-packag… │ │ │ │ sys = <module 'sys' (built-in)> │ │ │ │ time = <module 'time' (built-in)> │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ │ │ │ C:\Users\USER\AppData\Local\uv\cache\archive-v0\2OjspJyap3n_yX0XGlRR2\Lib\site-packages\starlette\middleware\session │ │ s.py:7 in <module> │ │ │ │ 4 import typing │ │ 5 from base64 import b64decode, b64encode │ │ 6 │ │ ❱ 7 import itsdangerous │ │ 8 from itsdangerous.exc import BadSignature │ │ 9 │ │ 10 from starlette.datastructures import MutableHeaders, Secret │ │ │ │ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │ │ │ annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) │ │ │ │ json = <module 'json' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\json\\__init__.py'> │ │ │ │ typing = <module 'typing' from │ │ │ │ 'C:\\Users\\USER\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\typing.py'> │ │ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ModuleNotFoundError: No module named 'itsdangerous' Press any key to continue . . . ### Additional Information _No response_
GiteaMirror added the bug label 2025-11-11 16:54:58 -06:00
Author
Owner

@nkuhn-vmw commented on GitHub (Sep 18, 2025):

Seeing this same error as well.

@nkuhn-vmw commented on GitHub (Sep 18, 2025): Seeing this same error as well.
Author
Owner

@sjw-4 commented on GitHub (Sep 18, 2025):

Same error for me on a VM running Ubuntu server 22.04.5

@sjw-4 commented on GitHub (Sep 18, 2025): Same error for me on a VM running Ubuntu server 22.04.5
Author
Owner

@adarmawan commented on GitHub (Sep 18, 2025):

Same here, using Win11, python 3.11 + UVX

@adarmawan commented on GitHub (Sep 18, 2025): Same here, using Win11, python 3.11 + UVX
Author
Owner

@v-shah89 commented on GitHub (Sep 18, 2025):

I am running into the same error.

macOS, python 3.11, using uv

@v-shah89 commented on GitHub (Sep 18, 2025): I am running into the same error. macOS, python 3.11, using uv
Author
Owner

@joocoo commented on GitHub (Sep 18, 2025):

I had a similar issue and when reverting back from the latest release to v0.6.28.
I was able to get it operational.

This is what I was using.
uvx --python 3.11 open-webui@v0.6.28 serve

When using the uvx with v0.6.28 there are 291 packages, but now there are 265 packages.

But I see nothing wrong with the uv.lock file. Nor can I see anything in the files listed in the traceback that would hint an issue.

I hope that the following image will be easier to read.

Image

Using Windows 11.

@joocoo commented on GitHub (Sep 18, 2025): I had a similar issue and when reverting back from the latest release to v0.6.28. I was able to get it operational. This is what I was using. uvx --python 3.11 open-webui@v0.6.28 serve When using the uvx with v0.6.28 there are 291 packages, but now there are 265 packages. But I see nothing wrong with the uv.lock file. Nor can I see anything in the files listed in the traceback that would hint an issue. I hope that the following image will be easier to read. <img width="2521" height="975" alt="Image" src="https://github.com/user-attachments/assets/22ee66bb-8385-4762-a480-1aac7d0e23ae" /> Using Windows 11.
Author
Owner

@Marclass commented on GitHub (Sep 18, 2025):

Some middleware in Starlette is trying to import the itsdangerous library but that's only included with a pip install starlette[full] per their docs and not the default starlette. Open-webui uses FastAPI which wraps starlette so it's probably just a requirements.txt getting out of sync somewhere.

Try doing a pip install itsdangerous or a pip install starlette[full] and see if that resolves it.

@Marclass commented on GitHub (Sep 18, 2025): Some middleware in Starlette is trying to import the itsdangerous library but that's only included with a pip install starlette[full] per their docs and not the default starlette. Open-webui uses FastAPI which wraps starlette so it's probably just a requirements.txt getting out of sync somewhere. Try doing a pip install itsdangerous or a pip install starlette[full] and see if that resolves it.
Author
Owner

@Marclass commented on GitHub (Sep 18, 2025):

I had a similar issue and when reverting back from the latest release to v0.6.28. I was able to get it operational.

This is what I was using. uvx --python 3.11 open-webui@v0.6.28 serve

When using the uvx with v0.6.28 there are 291 packages, but now there are 265 packages.

But I see nothing wrong with the uv.lock file. Nor can I see anything in the files listed in the traceback that would hint an issue.

I hope that the following image will be easier to read.
Image

Using Windows 11.

Someone using uvx also posted a temp fix in the discord to add --with itsdangerous to the uvx command line.

https://discord.com/channels/1170866489302188073/1170866490174619690/1417958923121463438

@Marclass commented on GitHub (Sep 18, 2025): > I had a similar issue and when reverting back from the latest release to v0.6.28. I was able to get it operational. > > This is what I was using. uvx --python 3.11 open-webui@v0.6.28 serve > > When using the uvx with v0.6.28 there are 291 packages, but now there are 265 packages. > > But I see nothing wrong with the uv.lock file. Nor can I see anything in the files listed in the traceback that would hint an issue. > > I hope that the following image will be easier to read. > <img alt="Image" width="2000" height="975" src="https://private-user-images.githubusercontent.com/3761505/490843795-22ee66bb-8385-4762-a480-1aac7d0e23ae.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTgxNjI4NDUsIm5iZiI6MTc1ODE2MjU0NSwicGF0aCI6Ii8zNzYxNTA1LzQ5MDg0Mzc5NS0yMmVlNjZiYi04Mzg1LTQ3NjItYTQ4MC0xYWFjN2QwZTIzYWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDkxOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA5MThUMDIyOTA1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzY2MjE4YmY2MDIwNzRkMzA5NTUzZGUwMTkzY2FhYjY1ODc0MTljODlmYTJlNjZkYWRlOTJkZjg3MDU1NGZhZCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.KYUkMaSdYzOeB49UUjgNotiYe5jroS_eHl8_BPTBnsI"> > > Using Windows 11. Someone using uvx also posted a temp fix in the discord to add --with itsdangerous to the uvx command line. https://discord.com/channels/1170866489302188073/1170866490174619690/1417958923121463438
Author
Owner

@joocoo commented on GitHub (Sep 18, 2025):

I am not familiar with UV that well but if this does not help, please ignore.
I just am not sure if the uvx command uses the additional packages from the pip install.

I did to a pip install starlette[full] and then attempted to run the latest tag.,

Image
@joocoo commented on GitHub (Sep 18, 2025): I am not familiar with UV that well but if this does not help, please ignore. I just am not sure if the uvx command uses the additional packages from the pip install. I did to a pip install starlette[full] and then attempted to run the latest tag., <img width="2558" height="1342" alt="Image" src="https://github.com/user-attachments/assets/5510b9c3-f626-4d39-a8c2-974d2383d7c4" />
Author
Owner

@Nfams commented on GitHub (Sep 18, 2025):

yeah seems like .6.29 on is broken with this. I did that pip install above too and it gives the same error. I'll just wait for a .31 i guess

@Nfams commented on GitHub (Sep 18, 2025): yeah seems like .6.29 on is broken with this. I did that pip install above too and it gives the same error. I'll just wait for a .31 i guess
Author
Owner

@Djordje-Stojanovic commented on GitHub (Sep 18, 2025):

Same error after doing: C:\Finetuning> pip install open-webui

I get: PS C:\Finetuning> open-webui serve:
ModuleNotFoundError: No module named 'itsdangerous'

Python version:
PS C:\Finetuning> python --version
Python 3.11.9

@Djordje-Stojanovic commented on GitHub (Sep 18, 2025): Same error after doing: C:\Finetuning> pip install open-webui I get: PS C:\Finetuning> open-webui serve: ModuleNotFoundError: No module named 'itsdangerous' Python version: PS C:\Finetuning> python --version Python 3.11.9
Author
Owner

@arruga commented on GitHub (Sep 18, 2025):

Same error updating from v0.6.28 to v0.6.30. Mine is a local installation with uv on Ubuntu 22.04. The update removed 27 packages and only 1, open-webui, was added. itsdangerous is one of the 27 packages removed. Going back to v0.6.28 with uv tool install open-webui@0.6.28 turned OWUI on again.

@arruga commented on GitHub (Sep 18, 2025): Same error updating from v0.6.28 to v0.6.30. Mine is a local installation with uv on Ubuntu 22.04. The update removed 27 packages and only 1, open-webui, was added. itsdangerous is one of the 27 packages removed. Going back to v0.6.28 with uv tool install open-webui@0.6.28 turned OWUI on again.
Author
Owner

@nviraj commented on GitHub (Sep 18, 2025):

Facing this as well

D:\Apps\uv\tools\open-webui\Lib\site-packages\starlette\middleware\sessions.py:7 in │
│ │
│ 4 import typing │
│ 5 from base64 import b64decode, b64encode │
│ 6 │
│ ❱ 7 import itsdangerous │
│ 8 from itsdangerous.exc import BadSignature │
│ 9 │
│ 10 from starlette.datastructures import MutableHeaders, Secret │
│ │
│ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │
│ │ annotations = Feature((3, 7, 0, 'beta', 1), None, 16777216) │ │
│ │ json = <module 'json' from │ │
│ │ 'C:\Users\user\AppData\Roaming\uv\python\cpython-3.12.8-windows-x86_64-none\Lib\json\
… │ │
│ │ typing = <module 'typing' from │ │
│ │ 'C:\Users\user\AppData\Roaming\uv\python\cpython-3.12.8-windows-x86_64-none\Lib\typing.… │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
ModuleNotFoundError: No module named 'itsdangerous'

@nviraj commented on GitHub (Sep 18, 2025): Facing this as well > D:\Apps\uv\tools\open-webui\Lib\site-packages\starlette\middleware\sessions.py:7 in <module> │ > │ │ > │ 4 import typing │ > │ 5 from base64 import b64decode, b64encode │ > │ 6 │ > │ ❱ 7 import itsdangerous │ > │ 8 from itsdangerous.exc import BadSignature │ > │ 9 │ > │ 10 from starlette.datastructures import MutableHeaders, Secret │ > │ │ > │ ╭───────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮ │ > │ │ annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216) │ │ > │ │ json = <module 'json' from │ │ > │ │ 'C:\\Users\\user\\AppData\\Roaming\\uv\\python\\cpython-3.12.8-windows-x86_64-none\\Lib\\json\\_… │ │ > │ │ typing = <module 'typing' from │ │ > │ │ 'C:\\Users\\user\\AppData\\Roaming\\uv\\python\\cpython-3.12.8-windows-x86_64-none\\Lib\\typing.… │ │ > │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ > ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ > ModuleNotFoundError: No module named 'itsdangerous'
Author
Owner

@NinadKP commented on GitHub (Sep 18, 2025):

--with itsdangerous

Adding this flag worked for me as well with the following command inside a uv env:
DATA_DIR=~/.open-webui uvx --python 3.11 --with itsdangerous open-webui@latest serve

@NinadKP commented on GitHub (Sep 18, 2025): > --with itsdangerous Adding this flag worked for me as well with the following command inside a uv env: `DATA_DIR=~/.open-webui uvx --python 3.11 --with itsdangerous open-webui@latest serve`
Author
Owner

@mattspruiell commented on GitHub (Sep 18, 2025):

--with itsdangerous

Adding this flag worked for me as well with the following command inside a uv env: DATA_DIR=~/.open-webui uvx --python 3.11 --with itsdangerous open-webui@latest serve

This solution from NinadKP worked for me as well.

@mattspruiell commented on GitHub (Sep 18, 2025): > > --with itsdangerous > > Adding this flag worked for me as well with the following command inside a uv env: `DATA_DIR=~/.open-webui uvx --python 3.11 --with itsdangerous open-webui@latest serve` This solution from [NinadKP](https://github.com/open-webui/open-webui/issues/17536#issuecomment-3306873419) worked for me as well.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#6436