I have searched for any existing and/or related issues.
I have searched for any existing and/or related discussions.
I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
v0.8.2
Ollama Version (if applicable)
v0.16.1
Operating System
Ubuntu 24.04
Browser (if applicable)
Chromium (Playwright)
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
Initiated a chat with Web Search capability:
What are the top business news for today?
Retrieved 3 sources
Searching the web
Searching
What are the top business news for today?
Searched 11 sites
Business News - CNBC
Business News - Latest Headlines on CNN Business | CNN Business
Business: US & International Top Business News | AP News
Business News: Reports and Video on Stocks, Inflation, Recalls and More | NBC News
Reuters Business News | Today's International Headlines | Reuters
Bloomberg - Business News, Stock Markets, Finance, Breaking & World News
Google News - Business - Latest
Fox Business | Business News & Stock Quotes - Saving & Investing
BBC Business | Economy, Tech, AI, Work, Personal Finance, Market news
Investor's Business Daily | Stock News and Stock Market Analysis - IBD
Business Insider - Latest News in Tech, Markets, Economy & Innovation
Retrieved 3 sources
Expected chat to generate a response, but none was generated. Container logs immediately dumped the exception and stack trace shown below while still indicating the "Searching" step.
Actual Behavior
Web search runs okay and returns URLs; NLTK downloads data packages okay; the pipeline then stalls/fails. Exception stack trace is output in the container logs.
Steps to Reproduce
Running Open WebUI v0.8.2 and sending a chat message that invoked web search (Open WebUI -> LiteLLM (perplexity_search) -> SearXNG) and web loader (Playwright). Model used is Gemma3 via Ollama.
Enable "Web Search" chat capability.
Enter chat message: "What are the top business news for today?"
Logs & Screenshots
2026-02-17 06:41:23.699 | ERROR | open_webui.utils.middleware:chat_web_search_handler:1316 - 'JSONResponse' object is not subscriptable
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module>
uvicorn.main()
│ └ <Command main>
└ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function Command.main at 0x7f4c18d17100>
└ <Command main>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f4c19a40cd0>
│ └ <function Command.invoke at 0x7f4c18d16de0>
└ <Command main>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
│ │ │ │ └ <click.core.Context object at 0x7f4c19a40cd0>
│ │ │ └ <function main at 0x7f4c18b13ec0>
│ │ └ <Command main>
│ └ <function Context.invoke at 0x7f4c18d16020>
└ <click.core.Context object at 0x7f4c19a40cd0>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
│ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
│ └ ()
└ <function main at 0x7f4c18b13ec0>
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 424, in main
run(
└ <function run at 0x7f4c18bc9c60>
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 594, in run
server.run()
│ └ <function Server.run at 0x7f4c18bc94e0>
└ <uvicorn.server.Server object at 0x7f4c18d4bad0>
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run
return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
│ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7f4c18ce0360>
│ │ │ │ │ └ <uvicorn.config.Config object at 0x7f4c18b1db50>
│ │ │ │ └ <uvicorn.server.Server object at 0x7f4c18d4bad0>
│ │ │ └ None
│ │ └ <function Server.serve at 0x7f4c18bc9580>
│ └ <uvicorn.server.Server object at 0x7f4c18d4bad0>
└ <function asyncio_run at 0x7f4c18d1a020>
File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f4c18a7b5b0>
│ └ <function Runner.run at 0x7f4c18f6cfe0>
└ <asyncio.runners.Runner object at 0x7f4c18b25590>
File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
│ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:71> wai...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f4c1883e800>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f4c18b25590>
File "/app/backend/open_webui/main.py", line 1784, in process_chat
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f4baf83c360>
│ └ {'user_id': 'c3bae6bd-bdd3-4c5e-bdba-ba7ec091d388', 'chat_id': 'b26e626e-bae9-4bf8-b61b-db14e365be8d', 'message_id': 'a91b2ef...
└ {'stream': True, 'model': 'browsing', 'messages': [{'role': 'system', 'content': 'Today is 2026-02-16, and the time is 22:41:...
File "/app/backend/open_webui/utils/middleware.py", line 2147, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f4baf7bfce0>
> File "/app/backend/open_webui/utils/middleware.py", line 1297, in chat_web_search_handler
response = res["choices"[][0[]["message"[]["content"]
└ <starlette.responses.JSONResponse object at 0x7f4bac402b90>
TypeError: 'JSONResponse' object is not subscriptable
Originally created by @erhhung on GitHub (Feb 17, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21509
### Check Existing Issues
- [x] I have searched for any existing and/or related issues.
- [x] I have searched for any existing and/or related discussions.
- [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
- [x] I am using the latest version of Open WebUI.
### Installation Method
Docker
### Open WebUI Version
v0.8.2
### Ollama Version (if applicable)
v0.16.1
### Operating System
Ubuntu 24.04
### Browser (if applicable)
Chromium (Playwright)
### 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
Initiated a chat with Web Search capability:
> What are the top business news for today?
Retrieved 3 sources
- Searching the web
- Searching
What are the top business news for today?
- Searched 11 sites
Business News - CNBC
Business News - Latest Headlines on CNN Business | CNN Business
Business: US & International Top Business News | AP News
Business News: Reports and Video on Stocks, Inflation, Recalls and More | NBC News
Reuters Business News | Today's International Headlines | Reuters
Bloomberg - Business News, Stock Markets, Finance, Breaking & World News
Google News - Business - Latest
Fox Business | Business News & Stock Quotes - Saving & Investing
BBC Business | Economy, Tech, AI, Work, Personal Finance, Market news
Investor's Business Daily | Stock News and Stock Market Analysis - IBD
Business Insider - Latest News in Tech, Markets, Economy & Innovation
- Retrieved 3 sources
Expected chat to generate a response, but **none was generated**. Container logs immediately dumped the exception and stack trace shown below while still indicating the "Searching" step.
### Actual Behavior
Web search runs okay and returns URLs; NLTK downloads data packages okay; the pipeline then stalls/fails. Exception stack trace is output in the container logs.
### Steps to Reproduce
Running Open WebUI v0.8.2 and sending a chat message that invoked web search (Open WebUI -> LiteLLM (perplexity_search) -> SearXNG) and web loader (Playwright). Model used is Gemma3 via Ollama.
1. Enable "Web Search" chat capability.
2. Enter chat message: "What are the top business news for today?"
### Logs & Screenshots
```
2026-02-17 06:41:23.699 | ERROR | open_webui.utils.middleware:chat_web_search_handler:1316 - 'JSONResponse' object is not subscriptable
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/usr/local/lib/python3.11/site-packages/uvicorn/__main__.py", line 4, in <module>
uvicorn.main()
│ └ <Command main>
└ <module 'uvicorn' from '/usr/local/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1485, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function Command.main at 0x7f4c18d17100>
└ <Command main>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1406, in main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f4c19a40cd0>
│ └ <function Command.invoke at 0x7f4c18d16de0>
└ <Command main>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1269, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
│ │ │ │ └ <click.core.Context object at 0x7f4c19a40cd0>
│ │ │ └ <function main at 0x7f4c18b13ec0>
│ │ └ <Command main>
│ └ <function Context.invoke at 0x7f4c18d16020>
└ <click.core.Context object at 0x7f4c19a40cd0>
File "/usr/local/lib/python3.11/site-packages/click/core.py", line 824, in invoke
return callback(*args, **kwargs)
│ │ └ {'host': '0.0.0.0', 'port': 8080, 'forwarded_allow_ips': '*', 'workers': 1, 'app': 'open_webui.main:app', 'uds': None, 'fd': ...
│ └ ()
└ <function main at 0x7f4c18b13ec0>
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 424, in main
run(
└ <function run at 0x7f4c18bc9c60>
File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 594, in run
server.run()
│ └ <function Server.run at 0x7f4c18bc94e0>
└ <uvicorn.server.Server object at 0x7f4c18d4bad0>
File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run
return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
│ │ │ │ │ │ └ <function Config.get_loop_factory at 0x7f4c18ce0360>
│ │ │ │ │ └ <uvicorn.config.Config object at 0x7f4c18b1db50>
│ │ │ │ └ <uvicorn.server.Server object at 0x7f4c18d4bad0>
│ │ │ └ None
│ │ └ <function Server.serve at 0x7f4c18bc9580>
│ └ <uvicorn.server.Server object at 0x7f4c18d4bad0>
└ <function asyncio_run at 0x7f4c18d1a020>
File "/usr/local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f4c18a7b5b0>
│ └ <function Runner.run at 0x7f4c18f6cfe0>
└ <asyncio.runners.Runner object at 0x7f4c18b25590>
File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
│ │ │ └ <Task pending name='Task-1' coro=<Server.serve() running at /usr/local/lib/python3.11/site-packages/uvicorn/server.py:71> wai...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f4c1883e800>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f4c18b25590>
File "/app/backend/open_webui/main.py", line 1784, in process_chat
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f4baf83c360>
│ └ {'user_id': 'c3bae6bd-bdd3-4c5e-bdba-ba7ec091d388', 'chat_id': 'b26e626e-bae9-4bf8-b61b-db14e365be8d', 'message_id': 'a91b2ef...
└ {'stream': True, 'model': 'browsing', 'messages': [{'role': 'system', 'content': 'Today is 2026-02-16, and the time is 22:41:...
File "/app/backend/open_webui/utils/middleware.py", line 2147, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f4baf7bfce0>
> File "/app/backend/open_webui/utils/middleware.py", line 1297, in chat_web_search_handler
response = res["choices"[][0[]["message"[]["content"]
└ <starlette.responses.JSONResponse object at 0x7f4bac402b90>
TypeError: 'JSONResponse' object is not subscriptable
```
GiteaMirror
added the bug label 2026-05-05 22:28:05 -05:00
any update? is this still present int .3? how can we reproduce this? A simple web search doesnt trigger this error for me
<!-- gh-comment-id:3916189527 -->
@Classic298 commented on GitHub (Feb 17, 2026):
any update? is this still present int .3? how can we reproduce this? A simple web search doesnt trigger this error for me
OK. I believe this is fixed in 0.8.3 as I don't see the exception anymore.
<!-- gh-comment-id:3918621326 -->
@erhhung commented on GitHub (Feb 18, 2026):
OK. I believe this is fixed in 0.8.3 as I don't see the exception anymore.
@AkseliLaakso-1 commented on GitHub (Mar 4, 2026):
Hey, I am having the same problem and didn't find a fix. Any updates on the matter? When or will this be fixed?
I tried these versions: v0.7.2, v0.8.3, v0.8.5, v0.8.6, v0.8.7.
Clean install, without data. using DDGS, Backend Random. Tried other search engines as well and didn't find a working one.
Error message:
└ {'stream': True, 'model': 'models/gemini-2.5-flash', 'messages': [{'role': 'user', 'content': 'Do a simple web search and tel...
File "/app/backend/open_webui/utils/middleware.py", line 1581, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7b4c71ab79c0>
File "/app/backend/open_webui/utils/middleware.py", line 782, in chat_web_search_handler
response = res["choices"][0]["message"]["content"]
└ <starlette.responses.JSONResponse object at 0x7b4c681a4050>
<!-- gh-comment-id:3999753462 -->
@AkseliLaakso-1 commented on GitHub (Mar 4, 2026):
Hey, I am having the same problem and didn't find a fix. Any updates on the matter? When or will this be fixed?
I tried these versions: v0.7.2, v0.8.3, v0.8.5, v0.8.6, v0.8.7.
Clean install, without data. using DDGS, Backend Random. Tried other search engines as well and didn't find a working one.
Error message:
└ {'stream': True, 'model': 'models/gemini-2.5-flash', 'messages': [{'role': 'user', 'content': 'Do a simple web search and tel...
File "/app/backend/open_webui/utils/middleware.py", line 1581, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7b4c71ab79c0>
> File "/app/backend/open_webui/utils/middleware.py", line 782, in chat_web_search_handler
response = res["choices"][0]["message"]["content"]
└ <starlette.responses.JSONResponse object at 0x7b4c681a4050>
<img width="2236" height="934" alt="Image" src="https://github.com/user-attachments/assets/7456fa6c-ce32-49a7-aa5b-3b4755b91ae8" />
Have tried with DDGS + Random aswell as Searxng, same issue. Web search has been working fine for the past 3 months (Been updating regularly). It broke for me around the time I updated to v0.8.10+
<!-- gh-comment-id:4149520303 -->
@hexomethyl commented on GitHub (Mar 29, 2026):
Also having a similar issue on v0.8.12
<img width="172" height="153" alt="Image" src="https://github.com/user-attachments/assets/60b48bc3-5442-4ad6-9068-0d95eac84b15" />
<img width="1500" height="250" alt="Image" src="https://github.com/user-attachments/assets/802e5ed4-113b-4577-a3eb-2d7222c658e2" />
Have tried with DDGS + Random aswell as Searxng, same issue. Web search has been working fine for the past 3 months (Been updating regularly). It broke for me around the time I updated to v0.8.10+
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 @erhhung on GitHub (Feb 17, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21509
Check Existing Issues
Installation Method
Docker
Open WebUI Version
v0.8.2
Ollama Version (if applicable)
v0.16.1
Operating System
Ubuntu 24.04
Browser (if applicable)
Chromium (Playwright)
Confirmation
README.md.Expected Behavior
Initiated a chat with Web Search capability:
Retrieved 3 sources
What are the top business news for today?
Business News - CNBC
Business News - Latest Headlines on CNN Business | CNN Business
Business: US & International Top Business News | AP News
Business News: Reports and Video on Stocks, Inflation, Recalls and More | NBC News
Reuters Business News | Today's International Headlines | Reuters
Bloomberg - Business News, Stock Markets, Finance, Breaking & World News
Google News - Business - Latest
Fox Business | Business News & Stock Quotes - Saving & Investing
BBC Business | Economy, Tech, AI, Work, Personal Finance, Market news
Investor's Business Daily | Stock News and Stock Market Analysis - IBD
Business Insider - Latest News in Tech, Markets, Economy & Innovation
Expected chat to generate a response, but none was generated. Container logs immediately dumped the exception and stack trace shown below while still indicating the "Searching" step.
Actual Behavior
Web search runs okay and returns URLs; NLTK downloads data packages okay; the pipeline then stalls/fails. Exception stack trace is output in the container logs.
Steps to Reproduce
Running Open WebUI v0.8.2 and sending a chat message that invoked web search (Open WebUI -> LiteLLM (perplexity_search) -> SearXNG) and web loader (Playwright). Model used is Gemma3 via Ollama.
Logs & Screenshots
@Classic298 commented on GitHub (Feb 17, 2026):
Please try 0.8.3
@Classic298 commented on GitHub (Feb 17, 2026):
any update? is this still present int .3? how can we reproduce this? A simple web search doesnt trigger this error for me
@erhhung commented on GitHub (Feb 18, 2026):
OK. I believe this is fixed in 0.8.3 as I don't see the exception anymore.
@AkseliLaakso-1 commented on GitHub (Mar 4, 2026):
Hey, I am having the same problem and didn't find a fix. Any updates on the matter? When or will this be fixed?
I tried these versions: v0.7.2, v0.8.3, v0.8.5, v0.8.6, v0.8.7.
Clean install, without data. using DDGS, Backend Random. Tried other search engines as well and didn't find a working one.
Error message:
└ {'stream': True, 'model': 'models/gemini-2.5-flash', 'messages': [{'role': 'user', 'content': 'Do a simple web search and tel...
File "/app/backend/open_webui/utils/middleware.py", line 1581, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7b4c71ab79c0>
@hexomethyl commented on GitHub (Mar 29, 2026):
Also having a similar issue on v0.8.12
Have tried with DDGS + Random aswell as Searxng, same issue. Web search has been working fine for the past 3 months (Been updating regularly). It broke for me around the time I updated to v0.8.10+