Originally created by @spookynando on GitHub (Aug 8, 2025).
Check Existing Issues
I have searched the existing issues and discussions.
I am using the latest version of Open WebUI.
Installation Method
Pip Install
Open WebUI Version
v0.6.18
Ollama Version (if applicable)
v0.11.4
Operating System
macOS Sequoia 15.6 (24G84)
Browser (if applicable)
Safari, Chrome
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
The auth service should have authorised me and taken to the chats page
Actual Behavior
Login button pressed, no errors pop up, nothing happens.
Steps to Reproduce
The situation and steps are best described in the "Additional Information" section.
Logs & Screenshots
Terminal log:
Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Loading WEBUI_SECRET_KEY from /Users/ls1/.webui_secret_key
/opt/anaconda3/lib/python3.11/site-packages/open_webui
/opt/anaconda3/lib/python3.11/site-packages
/opt/anaconda3/lib/python3.11
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [open_webui.env] 'ENABLE_SIGNUP' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_LOCALE' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_PROMPT_SUGGESTIONS' loaded from the latest database entry
WARNI [open_webui.env]
WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
/opt/anaconda3/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
Fetching 30 files: 100%|█████████████████████| 30/30 [00:00<00:00, 35757.07it/s]
INFO: Started server process [58898]
INFO: Waiting for application startup.
2025-08-08 17:05:47.396 | INFO | open_webui.utils.logger:start_logger:157 - GLOBAL_LOG_LEVEL: INFO - {}
2025-08-08 17:05:47.396 | INFO | open_webui.main:lifespan:519 - Installing external dependencies of functions and tools... - {}
2025-08-08 17:05:47.402 | INFO | open_webui.utils.plugin:install_frontmatter_requirements:241 - No requirements found in frontmatter. - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60928 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.092 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/loader.js HTTP/1.1" 200 - {}
2025-08-08 17:05:59.096 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/custom.css HTTP/1.1" 200 - {}
2025-08-08 17:05:59.119 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/splash.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.121 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/splash-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.425 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /api/config HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/favicon-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.547 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /manifest.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.550 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 304 - {}
2025-08-08 17:05:59.556 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/logo.png HTTP/1.1" 200 - {}
2025-08-08 17:06:09.225 | INFO | open_webui.models.auths:authenticate_user:131 - authenticate_user: sr.novichkov@gmail.com - {}
2025-08-08 17:06:09.341 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60937 - "POST /api/v1/auths/signin HTTP/1.1" 500 - {}
Exception in ASGI application
Exception Group Traceback (most recent call last):
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 178, in call
| async with anyio.create_task_group() as task_group:
| File "/opt/anaconda3/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 815, in aexit
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
| result = await app( # type: ignore[func-returns-value]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
| return await self.app(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in call
| await super().call(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in call
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in call
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in call
| await self.app(scope, receive, _send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in call
| await self.simple_response(scope, receive, send, request_headers=headers)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
| return await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init_.py", line 92, in call
| return await self._zstd(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in call
| await self.app(scope, receive, wrapper)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
| token = create_token(
| ^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
| encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
| ^^^^^^^^^^
| AttributeError: module 'jwt' has no attribute 'encode'
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in call
await super().call(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in call
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in call
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in call
await self.app(scope, receive, _send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in call
await self.simple_response(scope, receive, send, request_headers=headers)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init_.py", line 92, in call
return await self._zstd(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in call
await self.app(scope, receive, wrapper)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
token = create_token(
^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
^^^^^^^^^^
AttributeError: module 'jwt' has no attribute 'encode'
Chrome console log:
Use of history.pushState in a trivial session history context, which maintains only one session history entry, is treated as history.replaceState.
ee @ client.js:1534Understand this warningAI
hook.js:608 No token found in localStorage, user-join event not emitted
overrideMethod @ hook.js:608Understand this warningAI
:8080/api/v1/auths/signin:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)Understand this errorAI
hook.js:608 SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
overrideMethod @ hook.js:608Understand this errorAI
Additional Information
I have updated my macOS version to Sequoia 15.6 (24G84), after launching the service found that WebUI logged me out for some reason.
When I typed my regular (chrome saved) login/password it returned an error "wrong password". ok, i started troubleshooting, found an official manual on how to change the password. Generated a new HASH and inserted it directly into the database file: table "auth", column "password", replaced the old hash with the new one, saved the .db file. Launched the server and at the auth page, chrome auto-pasted correct details, pressed "login", the screen did not change, yet no error message were shown.
Complete log is attached.
To try fix this, I have also tried reinstalling open-webui (pip-uninstalled, pip-installed), did not fix the issue.
Originally created by @spookynando on GitHub (Aug 8, 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
Pip Install
### Open WebUI Version
v0.6.18
### Ollama Version (if applicable)
v0.11.4
### Operating System
macOS Sequoia 15.6 (24G84)
### Browser (if applicable)
Safari, Chrome
### 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
The auth service should have authorised me and taken to the chats page
### Actual Behavior
Login button pressed, no errors pop up, nothing happens.
### Steps to Reproduce
The situation and steps are best described in the "Additional Information" section.
### Logs & Screenshots
**Terminal log**:
Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Loading WEBUI_SECRET_KEY from /Users/ls1/.webui_secret_key
/opt/anaconda3/lib/python3.11/site-packages/open_webui
/opt/anaconda3/lib/python3.11/site-packages
/opt/anaconda3/lib/python3.11
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [open_webui.env] 'ENABLE_SIGNUP' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_LOCALE' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_PROMPT_SUGGESTIONS' loaded from the latest database entry
WARNI [open_webui.env]
WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
/opt/anaconda3/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
██████╗ ██████╗ ███████╗███╗ ██╗ ██╗ ██╗███████╗██████╗ ██╗ ██╗██╗
██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██║ ██║██╔════╝██╔══██╗██║ ██║██║
██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ █╗ ██║█████╗ ██████╔╝██║ ██║██║
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║█���║
╚██████╔╝██║ ███████╗██║ ╚████║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝
v0.6.18 - building the best AI user interface.
https://github.com/open-webui/open-webui
Fetching 30 files: 100%|█████████████████████| 30/30 [00:00<00:00, 35757.07it/s]
INFO: Started server process [58898]
INFO: Waiting for application startup.
2025-08-08 17:05:47.396 | INFO | open_webui.utils.logger:start_logger:157 - GLOBAL_LOG_LEVEL: INFO - {}
2025-08-08 17:05:47.396 | INFO | open_webui.main:lifespan:519 - Installing external dependencies of functions and tools... - {}
2025-08-08 17:05:47.402 | INFO | open_webui.utils.plugin:install_frontmatter_requirements:241 - No requirements found in frontmatter. - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60928 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.092 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/loader.js HTTP/1.1" 200 - {}
2025-08-08 17:05:59.096 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/custom.css HTTP/1.1" 200 - {}
2025-08-08 17:05:59.119 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/splash.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.121 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/splash-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.425 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /api/config HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/favicon-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.547 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /manifest.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.550 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 304 - {}
2025-08-08 17:05:59.556 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/logo.png HTTP/1.1" 200 - {}
2025-08-08 17:06:09.225 | INFO | open_webui.models.auths:authenticate_user:131 - authenticate_user: sr.novichkov@gmail.com - {}
2025-08-08 17:06:09.341 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60937 - "POST /api/v1/auths/signin HTTP/1.1" 500 - {}
Exception in ASGI application
+ Exception Group Traceback (most recent call last):
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 178, in __call__
| async with anyio.create_task_group() as task_group:
| File "/opt/anaconda3/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 815, in __aexit__
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
| result = await app( # type: ignore[func-returns-value]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
| return await self.app(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
| await super().__call__(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
| await self.app(scope, receive, _send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__
| await self.simple_response(scope, receive, send, request_headers=headers)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
| return await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
| return await self._zstd(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
| await self.app(scope, receive, wrapper)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
| token = create_token(
| ^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
| encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
| ^^^^^^^^^^
| AttributeError: module 'jwt' has no attribute 'encode'
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
await super().__call__(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in __call__
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in __call__
await self.app(scope, receive, _send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in __call__
await self.simple_response(scope, receive, send, request_headers=headers)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in __call__
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in __exit__
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in __call__
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
return await self._zstd(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
await self.app(scope, receive, wrapper)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
token = create_token(
^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
^^^^^^^^^^
AttributeError: module 'jwt' has no attribute 'encode'
**Chrome console log:**
Use of history.pushState in a trivial session history context, which maintains only one session history entry, is treated as history.replaceState.
ee @ client.js:1534Understand this warningAI
hook.js:608 No token found in localStorage, user-join event not emitted
overrideMethod @ hook.js:608Understand this warningAI
:8080/api/v1/auths/signin:1
Failed to load resource: the server responded with a status of 500 (Internal Server Error)Understand this errorAI
hook.js:608 SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
overrideMethod @ hook.js:608Understand this errorAI
### Additional Information
I have updated my macOS version to Sequoia 15.6 (24G84), after launching the service found that WebUI logged me out for some reason.
When I typed my regular (chrome saved) login/password it returned an error "wrong password". ok, i started troubleshooting, found an official manual on [how to change the password](https://docs.openwebui.com/troubleshooting/password-reset/). Generated a new HASH and inserted it directly into the database file: table "auth", column "password", replaced the old hash with the new one, saved the .db file. Launched the server and at the auth page, chrome auto-pasted **correct** details, pressed "login", the screen did not change, yet no error message were shown.
Complete log is attached.
To try fix this, I have also tried reinstalling open-webui (pip-uninstalled, pip-installed), did not fix the issue.
GiteaMirror
added the bug label 2025-11-11 16:41:50 -06:00
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 @spookynando on GitHub (Aug 8, 2025).
Check Existing Issues
Installation Method
Pip Install
Open WebUI Version
v0.6.18
Ollama Version (if applicable)
v0.11.4
Operating System
macOS Sequoia 15.6 (24G84)
Browser (if applicable)
Safari, Chrome
Confirmation
README.md.Expected Behavior
The auth service should have authorised me and taken to the chats page
Actual Behavior
Login button pressed, no errors pop up, nothing happens.
Steps to Reproduce
The situation and steps are best described in the "Additional Information" section.
Logs & Screenshots
Terminal log:
Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
Loading WEBUI_SECRET_KEY from /Users/ls1/.webui_secret_key
/opt/anaconda3/lib/python3.11/site-packages/open_webui
/opt/anaconda3/lib/python3.11/site-packages
/opt/anaconda3/lib/python3.11
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [open_webui.env] 'ENABLE_SIGNUP' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_LOCALE' loaded from the latest database entry
INFO [open_webui.env] 'DEFAULT_PROMPT_SUGGESTIONS' loaded from the latest database entry
WARNI [open_webui.env]
WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2
/opt/anaconda3/lib/python3.11/site-packages/pydub/utils.py:170: RuntimeWarning: Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work
warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
██████╗ ██████╗ ███████╗███╗ ██╗ ██╗ ██╗███████╗██████╗ ██╗ ██╗██╗
██╔═══██╗██╔══██╗██╔════╝████╗ ██║ ██║ ██║██╔════╝██╔══██╗██║ ██║██║
██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ █╗ ██║█████╗ ██████╔╝██║ ██║██║
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║█���║
╚██████╔╝██║ ███████╗██║ ╚████║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝
v0.6.18 - building the best AI user interface.
https://github.com/open-webui/open-webui
Fetching 30 files: 100%|█████████████████████| 30/30 [00:00<00:00, 35757.07it/s]
INFO: Started server process [58898]
INFO: Waiting for application startup.
2025-08-08 17:05:47.396 | INFO | open_webui.utils.logger:start_logger:157 - GLOBAL_LOG_LEVEL: INFO - {}
2025-08-08 17:05:47.396 | INFO | open_webui.main:lifespan:519 - Installing external dependencies of functions and tools... - {}
2025-08-08 17:05:47.402 | INFO | open_webui.utils.plugin:install_frontmatter_requirements:241 - No requirements found in frontmatter. - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60928 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:56.251 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /_app/version.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.092 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/loader.js HTTP/1.1" 200 - {}
2025-08-08 17:05:59.096 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/custom.css HTTP/1.1" 200 - {}
2025-08-08 17:05:59.119 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/splash.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.121 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/splash-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.425 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /api/config HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.446 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /static/favicon-dark.png HTTP/1.1" 200 - {}
2025-08-08 17:05:59.547 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60927 - "GET /manifest.json HTTP/1.1" 200 - {}
2025-08-08 17:05:59.550 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/favicon.png HTTP/1.1" 304 - {}
2025-08-08 17:05:59.556 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60930 - "GET /static/logo.png HTTP/1.1" 200 - {}
2025-08-08 17:06:09.225 | INFO | open_webui.models.auths:authenticate_user:131 - authenticate_user: sr.novichkov@gmail.com - {}
2025-08-08 17:06:09.341 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 127.0.0.1:60937 - "POST /api/v1/auths/signin HTTP/1.1" 500 - {}
Exception in ASGI application
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 76, in collapse_excgroups
| yield
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 178, in call
| async with anyio.create_task_group() as task_group:
| File "/opt/anaconda3/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 815, in aexit
| raise BaseExceptionGroup(
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
| result = await app( # type: ignore[func-returns-value]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
| return await self.app(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in call
| await super().call(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in call
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in call
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in call
| await self.app(scope, receive, _send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in call
| await self.simple_response(scope, receive, send, request_headers=headers)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
| return await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
| with recv_stream, send_stream, collapse_excgroups():
| File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
| self.gen.throw(typ, value, traceback)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/utils.py", line 82, in collapse_excgroups
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
| response = await self.dispatch_func(request, call_next)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
| response = await call_next(request)
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
| raise app_exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
| await self.app(scope, receive_or_disconnect, send_no_error)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init_.py", line 92, in call
| return await self._zstd(scope, receive, send)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in call
| await self.app(scope, receive, wrapper)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
| await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
| await self.middleware_stack(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
| await route.handle(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
| await self.app(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
| await wrap_app_handling_exceptions(app, request)(scope, receive, send)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
| raise exc
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
| await app(scope, receive, sender)
| File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
| response = await f(request)
| ^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
| raw_response = await run_endpoint_function(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
| return await dependant.call(**values)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
| token = create_token(
| ^^^^^^^^^^^^^
| File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
| encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
| ^^^^^^^^^^
| AttributeError: module 'jwt' has no attribute 'encode'
+------------------------------------
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 409, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in call
await super().call(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/applications.py", line 112, in call
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 187, in call
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/errors.py", line 165, in call
await self.app(scope, receive, _send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 93, in call
await self.simple_response(scope, receive, send, request_headers=headers)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/cors.py", line 144, in simple_response
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1162, in inspect_websocket
return await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1141, in check_url
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1127, in commit_session_after_request
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/security_headers.py", line 11, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 177, in call
with recv_stream, send_stream, collapse_excgroups():
File "/opt/anaconda3/lib/python3.11/contextlib.py", line 155, in exit
self.gen.throw(typ, value, traceback)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/utils.py", line 82, in collapse_excgroups
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 179, in call
response = await self.dispatch_func(request, call_next)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/main.py", line 1113, in dispatch
response = await call_next(request)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 154, in call_next
raise app_exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/__init_.py", line 92, in call
return await self._zstd(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in call
await self.app(scope, receive, wrapper)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
await self.middleware_stack(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
raise exc
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
File "/opt/anaconda3/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/routers/auths.py", line 512, in signin
token = create_token(
^^^^^^^^^^^^^
File "/opt/anaconda3/lib/python3.11/site-packages/open_webui/utils/auth.py", line 134, in create_token
encoded_jwt = jwt.encode(payload, SESSION_SECRET, algorithm=ALGORITHM)
^^^^^^^^^^
AttributeError: module 'jwt' has no attribute 'encode'
Chrome console log:
Use of history.pushState in a trivial session history context, which maintains only one session history entry, is treated as history.replaceState.
ee @ client.js:1534Understand this warningAI
hook.js:608 No token found in localStorage, user-join event not emitted
overrideMethod @ hook.js:608Understand this warningAI
:8080/api/v1/auths/signin:1
hook.js:608 SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
overrideMethod @ hook.js:608Understand this errorAI
Additional Information
I have updated my macOS version to Sequoia 15.6 (24G84), after launching the service found that WebUI logged me out for some reason.
When I typed my regular (chrome saved) login/password it returned an error "wrong password". ok, i started troubleshooting, found an official manual on how to change the password. Generated a new HASH and inserted it directly into the database file: table "auth", column "password", replaced the old hash with the new one, saved the .db file. Launched the server and at the auth page, chrome auto-pasted correct details, pressed "login", the screen did not change, yet no error message were shown.
Complete log is attached.
To try fix this, I have also tried reinstalling open-webui (pip-uninstalled, pip-installed), did not fix the issue.
@tjbck commented on GitHub (Aug 8, 2025):
Unable to reproduce, keep us updated!