Originally created by @OriginalSimon on GitHub (Dec 27, 2024).
Bug Report
Overview
Open WebUI experiences delays or hangs when one of the connected Ollama instances is inactive. The problem persists across page reloads and creates significant usability challenges.
Installation Method
Method Used: Docker
Environment
Open WebUI Version: 0.5.2
Ollama Version: 0.5.4
Operating System: Ubuntu
Browser: Florp Version 11.21.0 (64-біт) | Firefox: 128.5.0
Confirmation Checklist
I have read and followed all the instructions provided in the README.md.
I am on the latest version of both Open WebUI and Ollama.
I have included the Docker container logs.
I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below.
Expected Behavior
When one Ollama instance is inactive, Open WebUI should load without delays or dependencies on that instance. The system should bypass the inactive server and operate normally.
Actual Behavior
When one Ollama instance is inactive, Open WebUI attempts to fetch model data from all configured servers. This leads to prolonged delays or hangs until the inactive server is reactivated. Reloading the page causes the same issue to recur.
Additionally, after an extended period, the page may eventually load even if the instance remains inactive. However, the time required is unacceptably long for practical use.
Log Entry
Attempt to fetch models causes prolonged delay at this point:
open-webui | INFO [open_webui.routers.ollama] get_all_models()
Steps to Reproduce
Set up two Ollama instances.
Deactivate one of the instances.
Start Open WebUI.
Attempt to load the web interface.
Observe the delays and check the logs for errors.
Logs
Docker Container Logs
open-webui | Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
open-webui | Generating WEBUI_SECRET_KEY
open-webui | Loading WEBUI_SECRET_KEY from .webui_secret_key
open-webui | /app/backend/open_webui
open-webui | /app/backend
open-webui | /app
open-webui | Running migrations
open-webui | INFO [alembic.runtime.migration] Context impl SQLiteImpl.
open-webui | INFO [alembic.runtime.migration] Will assume non-transactional DDL.
open-webui | INFO [open_webui.env] 'ENABLE_OLLAMA_API' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OLLAMA_BASE_URLS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OLLAMA_API_CONFIGS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OPENAI_API_KEYS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OPENAI_API_BASE_URLS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'DEFAULT_LOCALE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'DEFAULT_PROMPT_SUGGESTIONS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_EVALUATION_ARENA_MODELS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'EVALUATION_ARENA_MODELS' loaded from the latest database entry
open-webui | WARNI [open_webui.env]
open-webui |
open-webui | WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
open-webui |
open-webui | INFO [open_webui.env] 'WEBUI_BANNERS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TASK_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TASK_MODEL_EXTERNAL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TITLE_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TAGS_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_TAGS_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_SEARCH_QUERY_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RETRIEVAL_QUERY_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'QUERY_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CONTENT_EXTRACTION_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TIKA_SERVER_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_TOP_K' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_RELEVANCE_THRESHOLD' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_HYBRID_SEARCH' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_EMBEDDING_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'PDF_EXTRACT_IMAGES' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_EMBEDDING_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] Embedding model set: chroma/all-minilm-l6-v2-f32:latest
open-webui | INFO [open_webui.env] 'RAG_RERANKING_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CHUNK_SIZE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CHUNK_OVERLAP' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'YOUTUBE_LOADER_LANGUAGE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'YOUTUBE_LOADER_PROXY_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_WEB_SEARCH' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SEARXNG_QUERY_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'GOOGLE_PSE_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'GOOGLE_PSE_ENGINE_ID' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BRAVE_SEARCH_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'MOJEEK_SEARCH_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPSTACK_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPSTACK_HTTPS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPER_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPLY_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TAVILY_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'JINA_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SEARCHAPI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BING_SEARCH_V7_ENDPOINT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BING_SEARCH_V7_SUBSCRIPTION_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_RESULT_COUNT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_CONCURRENT_REQUESTS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'WHISPER_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_BASE_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_BASE_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_VOICE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_SPLIT_ON' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_REGION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_LDAP' loaded from the latest database entry
open-webui | WARNI [chromadb.db.impl.sqlite] ⚠️ It looks like you upgraded from a version below 0.6 and could benefit from vacuuming your database. Run chromadb utils vacuum --help for more information.
open-webui | WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
open-webui | INFO: Started server process [1]
open-webui | INFO: Waiting for application startup.
open-webui | INFO: Application startup complete.
open-webui | INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
open-webui |
open-webui | ___ __ __ _ _ _ ___
open-webui | / _ \ _ __ ___ _ __ \ \ / /__| |__ | | | |_ _|
open-webui | | | | | '_ \ / _ \ '_ \ \ \ /\ / / _ \ '_ \| | | || |
open-webui | | |_| | |_) | __/ | | | \ V V / __/ |_) | |_| || |
open-webui | \___/| .__/ \___|_| |_| \_/\_/ \___|_.__/ \___/|___|
open-webui | |_|
open-webui |
open-webui |
open-webui | v0.5.2 - building the best open-source AI user interface.
open-webui |
open-webui | https://github.com/open-webui/open-webui
open-webui |
open-webui | INFO: 192.168.0.24:0 - "GET /auth HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /static/splash.png HTTP/1.1" 200 OK
open-webui | ERROR: Exception in ASGI application
open-webui | + Exception Group Traceback (most recent call last):
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
open-webui | | yield
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 190, in __call__
open-webui | | async with anyio.create_task_group() as task_group:
open-webui | | File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 815, in __aexit__
open-webui | | raise BaseExceptionGroup(
open-webui | | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
open-webui | +-+---------------- 1 ----------------
open-webui | | Traceback (most recent call last):
open-webui | | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
open-webui | | result = await app( # type: ignore[func-returns-value]
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
open-webui | | return await self.app(scope, receive, send)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui | | await super().__call__(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui | | await self.middleware_stack(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui | | raise exc
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui | | await self.app(scope, receive, _send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
open-webui | | await self.app(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui | | with collapse_excgroups():
open-webui | | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui | | self.gen.throw(typ, value, traceback)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui | | raise exc
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
open-webui | | response = await self.dispatch_func(request, call_next)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/app/backend/open_webui/main.py", line 723, in inspect_websocket
open-webui | | return await call_next(request)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 166, in call_next
open-webui | | raise RuntimeError("No response returned.")
open-webui | | RuntimeError: No response returned.
open-webui | +------------------------------------
open-webui |
open-webui | During handling of the above exception, another exception occurred:
open-webui |
open-webui | Traceback (most recent call last):
open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
open-webui | result = await app( # type: ignore[func-returns-value]
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
open-webui | return await self.app(scope, receive, send)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui | await super().__call__(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui | await self.middleware_stack(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui | raise exc
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui | await self.app(scope, receive, _send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
open-webui | await self.app(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui | with collapse_excgroups():
open-webui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui | self.gen.throw(typ, value, traceback)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui | raise exc
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
open-webui | response = await self.dispatch_func(request, call_next)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/app/backend/open_webui/main.py", line 723, in inspect_websocket
open-webui | return await call_next(request)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 166, in call_next
open-webui | raise RuntimeError("No response returned.")
open-webui | RuntimeError: No response returned.
open-webui | INFO: 192.168.0.24:0 - "GET /api/config HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/auths/ HTTP/1.1" 401 Unauthorized
open-webui | INFO: ('192.168.0.24', 0) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted]
open-webui | INFO: connection open
open-webui | INFO [open_webui.models.auths] authenticate_user: orisim@proton.me
open-webui | INFO: 192.168.0.24:0 - "POST /api/v1/auths/signin HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/config HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/changelog HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK
open-webui | INFO [open_webui.routers.openai] get_all_models()
open-webui | INFO [open_webui.routers.ollama] get_all_models()
open-webui | ERROR [open_webui.routers.ollama] Connection error: Cannot connect to host 192.168.0.24:11434 ssl:default [Connect call failed ('192.168.0.24', 11434)]
open-webui | INFO [open_webui.utils.plugin] Loaded module: function_google_translate_action_button
open-webui | INFO: 192.168.0.24:0 - "GET /api/models HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/tools/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/channels/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/all/tags HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/pinned HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/folders/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/version/updates HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "POST /api/v1/folders/6b460539-4021-4b8c-bfd7-29aa5d15a066/update/expanded HTTP/1.1" 200 OK
Screenshots
Originally created by @OriginalSimon on GitHub (Dec 27, 2024).
# Bug Report
## Overview
Open WebUI experiences delays or hangs when one of the connected Ollama instances is inactive. The problem persists across page reloads and creates significant usability challenges.
## Installation Method
- **Method Used:** Docker
## Environment
- **Open WebUI Version:** 0.5.2
- **Ollama Version:** 0.5.4
- **Operating System:** Ubuntu
- **Browser:** Florp Version 11.21.0 (64-біт) | Firefox: 128.5.0
## Confirmation Checklist
- [x] I have read and followed all the instructions provided in the README.md.
- [x] I am on the latest version of both Open WebUI and Ollama.
- [x] I have included the Docker container logs.
- [x] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below.
## Expected Behavior
When one Ollama instance is inactive, Open WebUI should load without delays or dependencies on that instance. The system should bypass the inactive server and operate normally.
## Actual Behavior
When one Ollama instance is inactive, Open WebUI attempts to fetch model data from all configured servers. This leads to prolonged delays or hangs until the inactive server is reactivated. Reloading the page causes the same issue to recur.
Additionally, after an extended period, the page may eventually load even if the instance remains inactive. However, the time required is unacceptably long for practical use.
### Log Entry
Attempt to fetch models causes prolonged delay at this point:
```
open-webui | INFO [open_webui.routers.ollama] get_all_models()
```
## Steps to Reproduce
1. Set up two Ollama instances.
2. Deactivate one of the instances.
3. Start Open WebUI.
4. Attempt to load the web interface.
5. Observe the delays and check the logs for errors.
## Logs
### Docker Container Logs
```
open-webui | Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
open-webui | Generating WEBUI_SECRET_KEY
open-webui | Loading WEBUI_SECRET_KEY from .webui_secret_key
open-webui | /app/backend/open_webui
open-webui | /app/backend
open-webui | /app
open-webui | Running migrations
open-webui | INFO [alembic.runtime.migration] Context impl SQLiteImpl.
open-webui | INFO [alembic.runtime.migration] Will assume non-transactional DDL.
open-webui | INFO [open_webui.env] 'ENABLE_OLLAMA_API' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OLLAMA_BASE_URLS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OLLAMA_API_CONFIGS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OPENAI_API_KEYS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'OPENAI_API_BASE_URLS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'DEFAULT_LOCALE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'DEFAULT_PROMPT_SUGGESTIONS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_EVALUATION_ARENA_MODELS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'EVALUATION_ARENA_MODELS' loaded from the latest database entry
open-webui | WARNI [open_webui.env]
open-webui |
open-webui | WARNING: CORS_ALLOW_ORIGIN IS SET TO '*' - NOT RECOMMENDED FOR PRODUCTION DEPLOYMENTS.
open-webui |
open-webui | INFO [open_webui.env] 'WEBUI_BANNERS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TASK_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TASK_MODEL_EXTERNAL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TITLE_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TAGS_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_TAGS_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_SEARCH_QUERY_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RETRIEVAL_QUERY_GENERATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'QUERY_GENERATION_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TOOLS_FUNCTION_CALLING_PROMPT_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CONTENT_EXTRACTION_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TIKA_SERVER_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_TOP_K' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_RELEVANCE_THRESHOLD' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_HYBRID_SEARCH' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_EMBEDDING_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'PDF_EXTRACT_IMAGES' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_EMBEDDING_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] Embedding model set: chroma/all-minilm-l6-v2-f32:latest
open-webui | INFO [open_webui.env] 'RAG_RERANKING_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CHUNK_SIZE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'CHUNK_OVERLAP' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_TEMPLATE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'YOUTUBE_LOADER_LANGUAGE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'YOUTUBE_LOADER_PROXY_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_RAG_WEB_SEARCH' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SEARXNG_QUERY_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'GOOGLE_PSE_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'GOOGLE_PSE_ENGINE_ID' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BRAVE_SEARCH_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'MOJEEK_SEARCH_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPSTACK_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPSTACK_HTTPS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPER_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SERPLY_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'TAVILY_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'JINA_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'SEARCHAPI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BING_SEARCH_V7_ENDPOINT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'BING_SEARCH_V7_SUBSCRIPTION_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_RESULT_COUNT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'RAG_WEB_SEARCH_CONCURRENT_REQUESTS' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'WHISPER_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_BASE_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_OPENAI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_STT_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_BASE_URL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_OPENAI_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_API_KEY' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_ENGINE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_MODEL' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_VOICE' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_SPLIT_ON' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_REGION' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'AUDIO_TTS_AZURE_SPEECH_OUTPUT_FORMAT' loaded from the latest database entry
open-webui | INFO [open_webui.env] 'ENABLE_LDAP' loaded from the latest database entry
open-webui | WARNI [chromadb.db.impl.sqlite] ⚠️ It looks like you upgraded from a version below 0.6 and could benefit from vacuuming your database. Run chromadb utils vacuum --help for more information.
open-webui | WARNI [langchain_community.utils.user_agent] USER_AGENT environment variable not set, consider setting it to identify your requests.
open-webui | INFO: Started server process [1]
open-webui | INFO: Waiting for application startup.
open-webui | INFO: Application startup complete.
open-webui | INFO: Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)
open-webui |
open-webui | ___ __ __ _ _ _ ___
open-webui | / _ \ _ __ ___ _ __ \ \ / /__| |__ | | | |_ _|
open-webui | | | | | '_ \ / _ \ '_ \ \ \ /\ / / _ \ '_ \| | | || |
open-webui | | |_| | |_) | __/ | | | \ V V / __/ |_) | |_| || |
open-webui | \___/| .__/ \___|_| |_| \_/\_/ \___|_.__/ \___/|___|
open-webui | |_|
open-webui |
open-webui |
open-webui | v0.5.2 - building the best open-source AI user interface.
open-webui |
open-webui | https://github.com/open-webui/open-webui
open-webui |
open-webui | INFO: 192.168.0.24:0 - "GET /auth HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /static/splash.png HTTP/1.1" 200 OK
open-webui | ERROR: Exception in ASGI application
open-webui | + Exception Group Traceback (most recent call last):
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 87, in collapse_excgroups
open-webui | | yield
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 190, in __call__
open-webui | | async with anyio.create_task_group() as task_group:
open-webui | | File "/usr/local/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 815, in __aexit__
open-webui | | raise BaseExceptionGroup(
open-webui | | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
open-webui | +-+---------------- 1 ----------------
open-webui | | Traceback (most recent call last):
open-webui | | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
open-webui | | result = await app( # type: ignore[func-returns-value]
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
open-webui | | return await self.app(scope, receive, send)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui | | await super().__call__(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui | | await self.middleware_stack(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui | | raise exc
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui | | await self.app(scope, receive, _send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
open-webui | | await self.app(scope, receive, send)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui | | with collapse_excgroups():
open-webui | | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui | | self.gen.throw(typ, value, traceback)
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui | | raise exc
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
open-webui | | response = await self.dispatch_func(request, call_next)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/app/backend/open_webui/main.py", line 723, in inspect_websocket
open-webui | | return await call_next(request)
open-webui | | ^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 166, in call_next
open-webui | | raise RuntimeError("No response returned.")
open-webui | | RuntimeError: No response returned.
open-webui | +------------------------------------
open-webui |
open-webui | During handling of the above exception, another exception occurred:
open-webui |
open-webui | Traceback (most recent call last):
open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgi
open-webui | result = await app( # type: ignore[func-returns-value]
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 70, in __call__
open-webui | return await self.app(scope, receive, send)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui | await super().__call__(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui | await self.middleware_stack(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui | raise exc
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui | await self.app(scope, receive, _send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
open-webui | await self.app(scope, receive, send)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui | with collapse_excgroups():
open-webui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui | self.gen.throw(typ, value, traceback)
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui | raise exc
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
open-webui | response = await self.dispatch_func(request, call_next)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/app/backend/open_webui/main.py", line 723, in inspect_websocket
open-webui | return await call_next(request)
open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^
open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 166, in call_next
open-webui | raise RuntimeError("No response returned.")
open-webui | RuntimeError: No response returned.
open-webui | INFO: 192.168.0.24:0 - "GET /api/config HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/auths/ HTTP/1.1" 401 Unauthorized
open-webui | INFO: ('192.168.0.24', 0) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted]
open-webui | INFO: connection open
open-webui | INFO [open_webui.models.auths] authenticate_user: orisim@proton.me
open-webui | INFO: 192.168.0.24:0 - "POST /api/v1/auths/signin HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/config HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/changelog HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK
open-webui | INFO [open_webui.routers.openai] get_all_models()
open-webui | INFO [open_webui.routers.ollama] get_all_models()
open-webui | ERROR [open_webui.routers.ollama] Connection error: Cannot connect to host 192.168.0.24:11434 ssl:default [Connect call failed ('192.168.0.24', 11434)]
open-webui | INFO [open_webui.utils.plugin] Loaded module: function_google_translate_action_button
open-webui | INFO: 192.168.0.24:0 - "GET /api/models HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/configs/banners HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/tools/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/channels/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/all/tags HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/pinned HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/folders/ HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/version/updates HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200 OK
open-webui | INFO: 192.168.0.24:0 - "POST /api/v1/folders/6b460539-4021-4b8c-bfd7-29aa5d15a066/update/expanded HTTP/1.1" 200 OK
```
### Screenshots

Expected behaviour, you can individually toggle your connection off or you could change AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST env var.
@tjbck commented on GitHub (Dec 27, 2024):
Expected behaviour, you can individually toggle your connection off or you could change `AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LIST` env var.
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 @OriginalSimon on GitHub (Dec 27, 2024).
Bug Report
Overview
Open WebUI experiences delays or hangs when one of the connected Ollama instances is inactive. The problem persists across page reloads and creates significant usability challenges.
Installation Method
Environment
Confirmation Checklist
Expected Behavior
When one Ollama instance is inactive, Open WebUI should load without delays or dependencies on that instance. The system should bypass the inactive server and operate normally.
Actual Behavior
When one Ollama instance is inactive, Open WebUI attempts to fetch model data from all configured servers. This leads to prolonged delays or hangs until the inactive server is reactivated. Reloading the page causes the same issue to recur.
Additionally, after an extended period, the page may eventually load even if the instance remains inactive. However, the time required is unacceptably long for practical use.
Log Entry
Attempt to fetch models causes prolonged delay at this point:
Steps to Reproduce
Logs
Docker Container Logs
Screenshots
@tjbck commented on GitHub (Dec 27, 2024):
Expected behaviour, you can individually toggle your connection off or you could change
AIOHTTP_CLIENT_TIMEOUT_OPENAI_MODEL_LISTenv var.