mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 03:18:23 -05:00
issue: ModuleNotFoundError: No module named 'itsdangerous' #6436
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @HarukaRepo on GitHub (Sep 18, 2025).
Check Existing Issues
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
README.md.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
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
@nkuhn-vmw commented on GitHub (Sep 18, 2025):
Seeing this same error as well.
@sjw-4 commented on GitHub (Sep 18, 2025):
Same error for me on a VM running Ubuntu server 22.04.5
@adarmawan commented on GitHub (Sep 18, 2025):
Same here, using Win11, python 3.11 + UVX
@v-shah89 commented on GitHub (Sep 18, 2025):
I am running into the same error.
macOS, python 3.11, using uv
@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.
Using Windows 11.
@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):
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
@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.,
@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
@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
@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.
@nviraj commented on GitHub (Sep 18, 2025):
Facing this as well
@NinadKP commented on GitHub (Sep 18, 2025):
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@mattspruiell commented on GitHub (Sep 18, 2025):
This solution from NinadKP worked for me as well.