mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-22 17:42:18 -05:00
[GH-ISSUE #17536] issue: ModuleNotFoundError: No module named 'itsdangerous' #105318
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).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/17536
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.