I have searched the existing issues and discussions.
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
v0.6.15
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
No response
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
Toggling web search should allow me to use the exa.ai search capability, which was true as of last update.
Actual Behavior
Issue: Web search functionality fails with a 400 error when no search engine API key is found in environment variables.
raise HTTPException(
status_code=400,
detail="No search engine API key found in environment variables"
)
Location:
File: /app/backend/open_webui/routers/retrieval.py
Line: 1867 (in process_web_search() function)
Tried using multiple models from different providers, but same issue.
Steps to Reproduce
Trigger a web search query to exa.ai endpoint; all other search providers are working as intended, but not exa.ai.
Logs & Screenshots
results = await process_web_search(
└ <function process_web_search at 0x7f31a4a70fe0>
File "/app/backend/open_webui/routers/retrieval.py", line 1867, in process_web_search
Originally created by @arcreactor81 on GitHub (Jun 24, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15251
### Check Existing Issues
- [x] I have searched the existing issues and discussions.
- [x] I am using the latest version of Open WebUI.
### Installation Method
Docker
### Open WebUI Version
v0.6.15
### Ollama Version (if applicable)
_No response_
### Operating System
Windows 11
### Browser (if applicable)
_No response_
### 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
Toggling web search should allow me to use the exa.ai search capability, which was true as of last update.
### Actual Behavior
Issue: Web search functionality fails with a 400 error when no search engine API key is found in environment variables.
raise HTTPException(
status_code=400,
detail="No search engine API key found in environment variables"
)
Location:
File: /app/backend/open_webui/routers/retrieval.py
Line: 1867 (in process_web_search() function)
Tried using multiple models from different providers, but same issue.
### Steps to Reproduce
Trigger a web search query to exa.ai endpoint; all other search providers are working as intended, but not exa.ai.
### Logs & Screenshots
```
results = await process_web_search(
└ <function process_web_search at 0x7f31a4a70fe0>
```
File "/app/backend/open_webui/routers/retrieval.py", line 1867, in process_web_search
```
raise HTTPException(
└ <class 'fastapi.exceptions.HTTPException'>
```
fastapi.exceptions.HTTPException: 400: No search engine API key found in environment variables
2025-06-24 05:31:22.211 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:22.820 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33820 - "GET /_app/version.json HTTP/1.1" 304 - {}
2025-06-24 05:31:25.874 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54148 - "POST /api/chat/completions HTTP/1.1" 200 - {}
2025-06-24 05:31:25.916 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54148 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:32.459 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:32.505 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "POST /api/chat/completed HTTP/1.1" 200 - {}
2025-06-24 05:31:32.576 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "POST /api/v1/chats/09f93307-6098-47ee-a9ff-1f34b1715a02 HTTP/1.1" 200 - {}
2025-06-24 05:31:32.606 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:38.019 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:41.831 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:41.962 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54164 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:41.963 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54168 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:41.965 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54170 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
### Additional Information
_No response_
GiteaMirror
added the bug label 2026-05-20 22:32:53 -05:00
Unable to reproduce, I'd suggest you check whether the API key has been correctly registered.
<!-- gh-comment-id:2999189272 -->
@tjbck commented on GitHub (Jun 24, 2025):
Unable to reproduce, I'd suggest you check whether the API key has been correctly registered.
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 @arcreactor81 on GitHub (Jun 24, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15251
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.6.15
Ollama Version (if applicable)
No response
Operating System
Windows 11
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
Toggling web search should allow me to use the exa.ai search capability, which was true as of last update.
Actual Behavior
Issue: Web search functionality fails with a 400 error when no search engine API key is found in environment variables.
raise HTTPException(
status_code=400,
detail="No search engine API key found in environment variables"
)
Location:
Tried using multiple models from different providers, but same issue.
Steps to Reproduce
Trigger a web search query to exa.ai endpoint; all other search providers are working as intended, but not exa.ai.
Logs & Screenshots
File "/app/backend/open_webui/routers/retrieval.py", line 1867, in process_web_search
fastapi.exceptions.HTTPException: 400: No search engine API key found in environment variables
2025-06-24 05:31:22.211 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:22.820 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33820 - "GET /_app/version.json HTTP/1.1" 304 - {}
2025-06-24 05:31:25.874 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54148 - "POST /api/chat/completions HTTP/1.1" 200 - {}
2025-06-24 05:31:25.916 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54148 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:32.459 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:32.505 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "POST /api/chat/completed HTTP/1.1" 200 - {}
2025-06-24 05:31:32.576 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "POST /api/v1/chats/09f93307-6098-47ee-a9ff-1f34b1715a02 HTTP/1.1" 200 - {}
2025-06-24 05:31:32.606 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:33830 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:38.019 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:41.831 | INFO | open_webui.routers.openai:get_all_models:391 - get_all_models() - {}
2025-06-24 05:31:41.962 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54164 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:41.963 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54168 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
2025-06-24 05:31:41.965 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:54170 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 - {}
Additional Information
No response
@tjbck commented on GitHub (Jun 24, 2025):
Unable to reproduce, I'd suggest you check whether the API key has been correctly registered.