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)
0.10.1
Operating System
Arch
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
Open WebUI should handle invalid URLs gracefully (e.g., log warnings instead of aborting the search).
Actual Behavior
Open WebUI raises socket.gaierror and aborts the search when encountering invalid URLs from searXNG, resulting in the status message "An error occurred while searching the web" and the model continuing to generate text with no search result context. Its reasoning will say stuff like "since i can't get up-to-date information, etc.
Steps to Reproduce
Configure Open WebUI to use searXNG as the search backend.
2025-08-02 04:59:55.307 | ERROR | open_webui.routers.retrieval:process_web_search:2020 - [Errno -2] Name or service not known - {}
Traceback (most recent call last):
File "/home/momo/AI/open-webui/bin/open-webui", line 8, in <module>
sys.exit(app())
│ │ └ <typer.main.Typer object at 0x7f860d509d90>
│ └ <built-in function exit>
└ <module 'sys' (built-in)>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 324, in __call__
return get_command(self)(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <typer.main.Typer object at 0x7f860d509d90>
└ <function get_command at 0x7f860ca0c680>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function TyperGroup.main at 0x7f860c9fac00>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 757, in main
return _main(
└ <function _main at 0x7f860c9f9d00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 195, in _main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f860bd81e90>
│ └ <function Group.invoke at 0x7f860d32f4c0>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function Command.invoke at 0x7f860d32e2a0>
│ │ └ <TyperCommand serve>
│ └ <click.core.Context object at 0x7f860d411fd0>
└ <function Group.invoke.<locals>._process_result at 0x7f860bd784a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function serve at 0x7f860bd782c0>
│ │ └ <TyperCommand serve>
│ └ <function Context.invoke at 0x7f860d32d4e0>
└ <click.core.Context object at 0x7f860d411fd0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
│ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ └ ()
└ <function serve at 0x7f860bd782c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 699, in wrapper
return callback(**use_params)
│ └ {'host': '0.0.0.0', 'port': 10000}
└ <function serve at 0x7f860be5f880>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/__init__.py", line 78, in serve
uvicorn.run(
│ └ <function run at 0x7f860bff5da0>
└ <module 'uvicorn' from '/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/main.py", line 580, in run
server.run()
│ └ <function Server.run at 0x7f860bff5f80>
└ <uvicorn.server.Server object at 0x7f84660036d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
│ │ │ │ └ None
│ │ │ └ <function Server.serve at 0x7f860bff6020>
│ │ └ <uvicorn.server.Server object at 0x7f84660036d0>
│ └ <function run at 0x7f860c19eb60>
└ <module 'asyncio' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/__init__.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f860bf85b70>
│ └ <function Runner.run at 0x7f860c1cb060>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/.pyenv/versions/3.11.13/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 /home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/ser...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f84660e8040>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
└ <open_webui.main.RedirectMiddleware object at 0x7f846642b6d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
return await self._zstd(scope, receive, send)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member '_zstd' of 'CompressMiddleware' objects>
└ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
await self.app(scope, receive, wrapper)
│ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member 'app' of 'ZstdResponder' objects>
└ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7f846635e380>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
│ │ │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ │ └ <starlette.requests.Request object at 0x7f8464197c50>
│ │ └ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7f846612c550>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>>
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function Route.handle at 0x7f8609edb420>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function request_response.<locals>.app at 0x7f84660199e0>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
│ │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ └ <starlette.requests.Request object at 0x7f8464197150>
│ └ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb420>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
│ └ <starlette.requests.Request object at 0x7f8464197150>
└ <function get_request_handler.<locals>.app at 0x7f84660198a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
└ <function run_endpoint_function at 0x7f8609f05260>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
│ │ └ {'user': UserModel(id='3dac8d33-619c-438e-945b-245b0b43abdf', name='Momo', email='oracletoes@protonmail.com', role='admin', p...
│ └ <function chat_completion at 0x7f8466019800>
└ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/main.py", line 1404, in chat_completion
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f84d73a8180>
│ └ {'user_id': '3dac8d33-619c-438e-945b-245b0b43abdf', 'chat_id': '44fab619-b8ea-4d70-b3a6-725cba3e1717', 'message_id': '84ebe9c...
└ {'stream': True, 'model': 'lucy', 'messages': [{'role': 'user', 'content': 'Does Anthropic have any models that you can run l...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 864, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f84d737bec0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 423, in chat_web_search_handler
results = await process_web_search(
└ <function process_web_search at 0x7f84da754180>
> File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1967, in process_web_search
loader = get_web_loader(
└ <function get_web_loader at 0x7f84db3d11c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 603, in get_web_loader
safe_urls = safe_validate_urls([urls] if isinstance(urls, str) else urls)
│ │ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
└ <function safe_validate_urls at 0x7f84db3d0e00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 76, in safe_validate_urls
if validate_url(u):
│ └ 'https://claudeai.wiki/can-you-run-claude-ai-locally/'
└ <function validate_url at 0x7f84db3d0d60>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 56, in validate_url
ipv4_addresses, ipv6_addresses = resolve_hostname(parsed_url.hostname)
│ │ └ <property object at 0x7f860d595a80>
│ └ ParseResult(scheme='https', netloc='claudeai.wiki', path='/can-you-run-claude-ai-locally/', params='', query='', fragment='')
└ <function resolve_hostname at 0x7f84db3d0fe0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 85, in resolve_hostname
addr_info = socket.getaddrinfo(hostname, None)
│ │ └ 'claudeai.wiki'
│ └ <function getaddrinfo at 0x7f860ca9aa20>
└ <module 'socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py", line 974, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
│ │ │ │ │ │ │ └ 0
│ │ │ │ │ │ └ 0
│ │ │ │ │ └ 0
│ │ │ │ └ 0
│ │ │ └ None
│ │ └ 'claudeai.wiki'
│ └ <built-in function getaddrinfo>
└ <module '_socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/lib-dynload/_socket.cpython-311-x86_64-linux-gnu.so'>
socket.gaierror: [Errno -2] Name or service not known
2025-08-02 04:59:55.310 | ERROR | open_webui.utils.middleware:chat_web_search_handler:485 - 400: [ERROR: [Errno -2] Name or service not known] - {}
Traceback (most recent call last):
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1967, in process_web_search
loader = get_web_loader(
└ <function get_web_loader at 0x7f84db3d11c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 603, in get_web_loader
safe_urls = safe_validate_urls([urls] if isinstance(urls, str) else urls)
│ │ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
└ <function safe_validate_urls at 0x7f84db3d0e00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 76, in safe_validate_urls
if validate_url(u):
│ └ 'https://claudeai.wiki/can-you-run-claude-ai-locally/'
└ <function validate_url at 0x7f84db3d0d60>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 56, in validate_url
ipv4_addresses, ipv6_addresses = resolve_hostname(parsed_url.hostname)
│ │ └ <property object at 0x7f860d595a80>
│ └ ParseResult(scheme='https', netloc='claudeai.wiki', path='/can-you-run-claude-ai-locally/', params='', query='', fragment='')
└ <function resolve_hostname at 0x7f84db3d0fe0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 85, in resolve_hostname
addr_info = socket.getaddrinfo(hostname, None)
│ │ └ 'claudeai.wiki'
│ └ <function getaddrinfo at 0x7f860ca9aa20>
└ <module 'socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py", line 974, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
│ │ │ │ │ │ │ └ 0
│ │ │ │ │ │ └ 0
│ │ │ │ │ └ 0
│ │ │ │ └ 0
│ │ │ └ None
│ │ └ 'claudeai.wiki'
│ └ <built-in function getaddrinfo>
└ <module '_socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/lib-dynload/_socket.cpython-311-x86_64-linux-gnu.so'>
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/momo/AI/open-webui/bin/open-webui", line 8, in <module>
sys.exit(app())
│ │ └ <typer.main.Typer object at 0x7f860d509d90>
│ └ <built-in function exit>
└ <module 'sys' (built-in)>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 324, in __call__
return get_command(self)(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <typer.main.Typer object at 0x7f860d509d90>
└ <function get_command at 0x7f860ca0c680>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function TyperGroup.main at 0x7f860c9fac00>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 757, in main
return _main(
└ <function _main at 0x7f860c9f9d00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 195, in _main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f860bd81e90>
│ └ <function Group.invoke at 0x7f860d32f4c0>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function Command.invoke at 0x7f860d32e2a0>
│ │ └ <TyperCommand serve>
│ └ <click.core.Context object at 0x7f860d411fd0>
└ <function Group.invoke.<locals>._process_result at 0x7f860bd784a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function serve at 0x7f860bd782c0>
│ │ └ <TyperCommand serve>
│ └ <function Context.invoke at 0x7f860d32d4e0>
└ <click.core.Context object at 0x7f860d411fd0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
│ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ └ ()
└ <function serve at 0x7f860bd782c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 699, in wrapper
return callback(**use_params)
│ └ {'host': '0.0.0.0', 'port': 10000}
└ <function serve at 0x7f860be5f880>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/__init__.py", line 78, in serve
uvicorn.run(
│ └ <function run at 0x7f860bff5da0>
└ <module 'uvicorn' from '/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/main.py", line 580, in run
server.run()
│ └ <function Server.run at 0x7f860bff5f80>
└ <uvicorn.server.Server object at 0x7f84660036d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
│ │ │ │ └ None
│ │ │ └ <function Server.serve at 0x7f860bff6020>
│ │ └ <uvicorn.server.Server object at 0x7f84660036d0>
│ └ <function run at 0x7f860c19eb60>
└ <module 'asyncio' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/__init__.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f860bf85b70>
│ └ <function Runner.run at 0x7f860c1cb060>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/.pyenv/versions/3.11.13/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 /home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/ser...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f84660e8040>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
└ <open_webui.main.RedirectMiddleware object at 0x7f846642b6d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
return await self._zstd(scope, receive, send)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member '_zstd' of 'CompressMiddleware' objects>
└ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
await self.app(scope, receive, wrapper)
│ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member 'app' of 'ZstdResponder' objects>
└ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7f846635e380>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
│ │ │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ │ └ <starlette.requests.Request object at 0x7f8464197c50>
│ │ └ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7f846612c550>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>>
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function Route.handle at 0x7f8609edb420>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function request_response.<locals>.app at 0x7f84660199e0>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
│ │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ └ <starlette.requests.Request object at 0x7f8464197150>
│ └ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb420>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
│ └ <starlette.requests.Request object at 0x7f8464197150>
└ <function get_request_handler.<locals>.app at 0x7f84660198a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
└ <function run_endpoint_function at 0x7f8609f05260>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
│ │ └ {'user': UserModel(id='3dac8d33-619c-438e-945b-245b0b43abdf', name='Momo', email='oracletoes@protonmail.com', role='admin', p...
│ └ <function chat_completion at 0x7f8466019800>
└ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/main.py", line 1404, in chat_completion
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f84d73a8180>
│ └ {'user_id': '3dac8d33-619c-438e-945b-245b0b43abdf', 'chat_id': '44fab619-b8ea-4d70-b3a6-725cba3e1717', 'message_id': '84ebe9c...
└ {'stream': True, 'model': 'lucy', 'messages': [{'role': 'user', 'content': 'Does Anthropic have any models that you can run l...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 864, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f84d737bec0>
> File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 423, in chat_web_search_handler
results = await process_web_search(
└ <function process_web_search at 0x7f84da754180>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 2021, in process_web_search
raise HTTPException(
└ <class 'fastapi.exceptions.HTTPException'>
Additional Information
When Open WebUI’s web search functionality processes URLs provided by searXNG, it raises [Errno -2] Name or service not known errors if the URL cannot be resolved via DNS. This occurs because searXNG returns invalid domains like claudeai.wiki, which are confirmed unreachable via nslookup.
Originally created by @OracleToes on GitHub (Aug 2, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16227
### 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)
0.10.1
### Operating System
Arch
### 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
Open WebUI should handle invalid URLs gracefully (e.g., log warnings instead of aborting the search).
### Actual Behavior
Open WebUI raises socket.gaierror and aborts the search when encountering invalid URLs from searXNG, resulting in the status message "An error occurred while searching the web" and the model continuing to generate text with no search result context. Its reasoning will say stuff like "since i can't get up-to-date information, etc.
### Steps to Reproduce
1. Configure Open WebUI to use searXNG as the search backend.
2. Trigger a search query that includes invalid URLs (e.g., https://claudeai.wiki).
3. Observe crashes or errors in logs.
### Logs & Screenshots
```
2025-08-02 04:59:55.307 | ERROR | open_webui.routers.retrieval:process_web_search:2020 - [Errno -2] Name or service not known - {}
Traceback (most recent call last):
File "/home/momo/AI/open-webui/bin/open-webui", line 8, in <module>
sys.exit(app())
│ │ └ <typer.main.Typer object at 0x7f860d509d90>
│ └ <built-in function exit>
└ <module 'sys' (built-in)>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 324, in __call__
return get_command(self)(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <typer.main.Typer object at 0x7f860d509d90>
└ <function get_command at 0x7f860ca0c680>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function TyperGroup.main at 0x7f860c9fac00>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 757, in main
return _main(
└ <function _main at 0x7f860c9f9d00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 195, in _main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f860bd81e90>
│ └ <function Group.invoke at 0x7f860d32f4c0>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function Command.invoke at 0x7f860d32e2a0>
│ │ └ <TyperCommand serve>
│ └ <click.core.Context object at 0x7f860d411fd0>
└ <function Group.invoke.<locals>._process_result at 0x7f860bd784a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function serve at 0x7f860bd782c0>
│ │ └ <TyperCommand serve>
│ └ <function Context.invoke at 0x7f860d32d4e0>
└ <click.core.Context object at 0x7f860d411fd0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
│ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ └ ()
└ <function serve at 0x7f860bd782c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 699, in wrapper
return callback(**use_params)
│ └ {'host': '0.0.0.0', 'port': 10000}
└ <function serve at 0x7f860be5f880>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/__init__.py", line 78, in serve
uvicorn.run(
│ └ <function run at 0x7f860bff5da0>
└ <module 'uvicorn' from '/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/main.py", line 580, in run
server.run()
│ └ <function Server.run at 0x7f860bff5f80>
└ <uvicorn.server.Server object at 0x7f84660036d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
│ │ │ │ └ None
│ │ │ └ <function Server.serve at 0x7f860bff6020>
│ │ └ <uvicorn.server.Server object at 0x7f84660036d0>
│ └ <function run at 0x7f860c19eb60>
└ <module 'asyncio' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/__init__.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f860bf85b70>
│ └ <function Runner.run at 0x7f860c1cb060>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/.pyenv/versions/3.11.13/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 /home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/ser...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f84660e8040>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
└ <open_webui.main.RedirectMiddleware object at 0x7f846642b6d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
return await self._zstd(scope, receive, send)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member '_zstd' of 'CompressMiddleware' objects>
└ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
await self.app(scope, receive, wrapper)
│ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member 'app' of 'ZstdResponder' objects>
└ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7f846635e380>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
│ │ │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ │ └ <starlette.requests.Request object at 0x7f8464197c50>
│ │ └ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7f846612c550>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>>
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function Route.handle at 0x7f8609edb420>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function request_response.<locals>.app at 0x7f84660199e0>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
│ │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ └ <starlette.requests.Request object at 0x7f8464197150>
│ └ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb420>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
│ └ <starlette.requests.Request object at 0x7f8464197150>
└ <function get_request_handler.<locals>.app at 0x7f84660198a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
└ <function run_endpoint_function at 0x7f8609f05260>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
│ │ └ {'user': UserModel(id='3dac8d33-619c-438e-945b-245b0b43abdf', name='Momo', email='oracletoes@protonmail.com', role='admin', p...
│ └ <function chat_completion at 0x7f8466019800>
└ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/main.py", line 1404, in chat_completion
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f84d73a8180>
│ └ {'user_id': '3dac8d33-619c-438e-945b-245b0b43abdf', 'chat_id': '44fab619-b8ea-4d70-b3a6-725cba3e1717', 'message_id': '84ebe9c...
└ {'stream': True, 'model': 'lucy', 'messages': [{'role': 'user', 'content': 'Does Anthropic have any models that you can run l...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 864, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f84d737bec0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 423, in chat_web_search_handler
results = await process_web_search(
└ <function process_web_search at 0x7f84da754180>
> File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1967, in process_web_search
loader = get_web_loader(
└ <function get_web_loader at 0x7f84db3d11c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 603, in get_web_loader
safe_urls = safe_validate_urls([urls] if isinstance(urls, str) else urls)
│ │ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
└ <function safe_validate_urls at 0x7f84db3d0e00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 76, in safe_validate_urls
if validate_url(u):
│ └ 'https://claudeai.wiki/can-you-run-claude-ai-locally/'
└ <function validate_url at 0x7f84db3d0d60>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 56, in validate_url
ipv4_addresses, ipv6_addresses = resolve_hostname(parsed_url.hostname)
│ │ └ <property object at 0x7f860d595a80>
│ └ ParseResult(scheme='https', netloc='claudeai.wiki', path='/can-you-run-claude-ai-locally/', params='', query='', fragment='')
└ <function resolve_hostname at 0x7f84db3d0fe0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 85, in resolve_hostname
addr_info = socket.getaddrinfo(hostname, None)
│ │ └ 'claudeai.wiki'
│ └ <function getaddrinfo at 0x7f860ca9aa20>
└ <module 'socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py", line 974, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
│ │ │ │ │ │ │ └ 0
│ │ │ │ │ │ └ 0
│ │ │ │ │ └ 0
│ │ │ │ └ 0
│ │ │ └ None
│ │ └ 'claudeai.wiki'
│ └ <built-in function getaddrinfo>
└ <module '_socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/lib-dynload/_socket.cpython-311-x86_64-linux-gnu.so'>
socket.gaierror: [Errno -2] Name or service not known
2025-08-02 04:59:55.310 | ERROR | open_webui.utils.middleware:chat_web_search_handler:485 - 400: [ERROR: [Errno -2] Name or service not known] - {}
Traceback (most recent call last):
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 1967, in process_web_search
loader = get_web_loader(
└ <function get_web_loader at 0x7f84db3d11c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 603, in get_web_loader
safe_urls = safe_validate_urls([urls] if isinstance(urls, str) else urls)
│ │ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ │ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
│ └ ['https://www.reddit.com/r/ClaudeAI/comments/1gaf2jr/opensource_alternative_to_anthropics_claude/', 'https://news.ycombinator...
└ <function safe_validate_urls at 0x7f84db3d0e00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 76, in safe_validate_urls
if validate_url(u):
│ └ 'https://claudeai.wiki/can-you-run-claude-ai-locally/'
└ <function validate_url at 0x7f84db3d0d60>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 56, in validate_url
ipv4_addresses, ipv6_addresses = resolve_hostname(parsed_url.hostname)
│ │ └ <property object at 0x7f860d595a80>
│ └ ParseResult(scheme='https', netloc='claudeai.wiki', path='/can-you-run-claude-ai-locally/', params='', query='', fragment='')
└ <function resolve_hostname at 0x7f84db3d0fe0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/retrieval/web/utils.py", line 85, in resolve_hostname
addr_info = socket.getaddrinfo(hostname, None)
│ │ └ 'claudeai.wiki'
│ └ <function getaddrinfo at 0x7f860ca9aa20>
└ <module 'socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/socket.py", line 974, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
│ │ │ │ │ │ │ └ 0
│ │ │ │ │ │ └ 0
│ │ │ │ │ └ 0
│ │ │ │ └ 0
│ │ │ └ None
│ │ └ 'claudeai.wiki'
│ └ <built-in function getaddrinfo>
└ <module '_socket' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/lib-dynload/_socket.cpython-311-x86_64-linux-gnu.so'>
socket.gaierror: [Errno -2] Name or service not known
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/momo/AI/open-webui/bin/open-webui", line 8, in <module>
sys.exit(app())
│ │ └ <typer.main.Typer object at 0x7f860d509d90>
│ └ <built-in function exit>
└ <module 'sys' (built-in)>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 324, in __call__
return get_command(self)(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <typer.main.Typer object at 0x7f860d509d90>
└ <function get_command at 0x7f860ca0c680>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
│ │ │ └ {}
│ │ └ ()
│ └ <function TyperGroup.main at 0x7f860c9fac00>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 757, in main
return _main(
└ <function _main at 0x7f860c9f9d00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/core.py", line 195, in _main
rv = self.invoke(ctx)
│ │ └ <click.core.Context object at 0x7f860bd81e90>
│ └ <function Group.invoke at 0x7f860d32f4c0>
└ <TyperGroup >
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function Command.invoke at 0x7f860d32e2a0>
│ │ └ <TyperCommand serve>
│ └ <click.core.Context object at 0x7f860d411fd0>
└ <function Group.invoke.<locals>._process_result at 0x7f860bd784a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
│ │ │ │ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ │ │ │ └ <click.core.Context object at 0x7f860d411fd0>
│ │ │ └ <function serve at 0x7f860bd782c0>
│ │ └ <TyperCommand serve>
│ └ <function Context.invoke at 0x7f860d32d4e0>
└ <click.core.Context object at 0x7f860d411fd0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
│ │ └ {'port': 10000, 'host': '0.0.0.0'}
│ └ ()
└ <function serve at 0x7f860bd782c0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/typer/main.py", line 699, in wrapper
return callback(**use_params)
│ └ {'host': '0.0.0.0', 'port': 10000}
└ <function serve at 0x7f860be5f880>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/__init__.py", line 78, in serve
uvicorn.run(
│ └ <function run at 0x7f860bff5da0>
└ <module 'uvicorn' from '/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/__init__.py'>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/main.py", line 580, in run
server.run()
│ └ <function Server.run at 0x7f860bff5f80>
└ <uvicorn.server.Server object at 0x7f84660036d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
return asyncio.run(self.serve(sockets=sockets))
│ │ │ │ └ None
│ │ │ └ <function Server.serve at 0x7f860bff6020>
│ │ └ <uvicorn.server.Server object at 0x7f84660036d0>
│ └ <function run at 0x7f860c19eb60>
└ <module 'asyncio' from '/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/__init__.py'>
File "/home/momo/.pyenv/versions/3.11.13/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
│ │ └ <coroutine object Server.serve at 0x7f860bf85b70>
│ └ <function Runner.run at 0x7f860c1cb060>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/.pyenv/versions/3.11.13/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 /home/momo/AI/open-webui/lib/python3.11/site-packages/uvicorn/ser...
│ │ └ <cyfunction Loop.run_until_complete at 0x7f84660e8040>
│ └ <uvloop.Loop running=True closed=False debug=False>
└ <asyncio.runners.Runner object at 0x7f860bd896d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
await self.app(scope, receive_or_disconnect, send_no_error)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
└ <open_webui.main.RedirectMiddleware object at 0x7f846642b6d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/__init__.py", line 92, in __call__
return await self._zstd(scope, receive, send)
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.send_no_error at 0x7f84641ca840>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member '_zstd' of 'CompressMiddleware' objects>
└ <starlette_compress.CompressMiddleware object at 0x7f8465da2c00>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette_compress/_zstd_legacy.py", line 100, in __call__
await self.app(scope, receive, wrapper)
│ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <member 'app' of 'ZstdResponder' objects>
└ <starlette_compress._zstd_legacy.ZstdResponder object at 0x7f846635e380>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
│ │ │ │ │ │ └ <function ZstdResponder.__call__.<locals>.wrapper at 0x7f84641cb2e0>
│ │ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ │ └ <starlette.requests.Request object at 0x7f8464197c50>
│ │ └ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
│ └ <starlette.middleware.exceptions.ExceptionMiddleware object at 0x7f846612c550>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
await self.middleware_stack(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <bound method Router.app of <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>>
└ <fastapi.routing.APIRouter object at 0x7f84d73ad9d0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
await route.handle(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function Route.handle at 0x7f8609edb420>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
│ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ └ <function request_response.<locals>.app at 0x7f84660199e0>
└ APIRoute(path='/api/chat/completions', name='chat_completion', methods=['POST'])
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
│ │ │ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb4c0>
│ │ │ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ │ │ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
│ │ └ <starlette.requests.Request object at 0x7f8464197150>
│ └ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
└ <function wrap_app_handling_exceptions at 0x7f8609ed9da0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
await app(scope, receive, sender)
│ │ │ └ <function wrap_app_handling_exceptions.<locals>.wrapped_app.<locals>.sender at 0x7f84641cb420>
│ │ └ <function BaseHTTPMiddleware.__call__.<locals>.call_next.<locals>.receive_or_disconnect at 0x7f84641c9440>
│ └ {'type': 'http', 'asgi': {'version': '3.0', 'spec_version': '2.3'}, 'http_version': '1.1', 'server': ('127.0.0.1', 10000), 'c...
└ <function request_response.<locals>.app.<locals>.app at 0x7f84641ca480>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
response = await f(request)
│ └ <starlette.requests.Request object at 0x7f8464197150>
└ <function get_request_handler.<locals>.app at 0x7f84660198a0>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
raw_response = await run_endpoint_function(
└ <function run_endpoint_function at 0x7f8609f05260>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
return await dependant.call(**values)
│ │ └ {'user': UserModel(id='3dac8d33-619c-438e-945b-245b0b43abdf', name='Momo', email='oracletoes@protonmail.com', role='admin', p...
│ └ <function chat_completion at 0x7f8466019800>
└ Dependant(path_params=[], query_params=[], header_params=[], cookie_params=[], body_params=[ModelField(field_info=Body(Pydant...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/main.py", line 1404, in chat_completion
form_data, metadata, events = await process_chat_payload(
│ │ └ <function process_chat_payload at 0x7f84d73a8180>
│ └ {'user_id': '3dac8d33-619c-438e-945b-245b0b43abdf', 'chat_id': '44fab619-b8ea-4d70-b3a6-725cba3e1717', 'message_id': '84ebe9c...
└ {'stream': True, 'model': 'lucy', 'messages': [{'role': 'user', 'content': 'Does Anthropic have any models that you can run l...
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 864, in process_chat_payload
form_data = await chat_web_search_handler(
└ <function chat_web_search_handler at 0x7f84d737bec0>
> File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/utils/middleware.py", line 423, in chat_web_search_handler
results = await process_web_search(
└ <function process_web_search at 0x7f84da754180>
File "/home/momo/AI/open-webui/lib/python3.11/site-packages/open_webui/routers/retrieval.py", line 2021, in process_web_search
raise HTTPException(
└ <class 'fastapi.exceptions.HTTPException'>
```
### Additional Information
When Open WebUI’s web search functionality processes URLs provided by searXNG, it raises [Errno -2] Name or service not known errors if the URL cannot be resolved via DNS. This occurs because searXNG returns invalid domains like claudeai.wiki, which are confirmed unreachable via nslookup.
GiteaMirror
added the bug label 2026-05-18 02:36:43 -05: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 @OracleToes on GitHub (Aug 2, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16227
Check Existing Issues
Installation Method
Pip Install
Open WebUI Version
v0.6.18
Ollama Version (if applicable)
0.10.1
Operating System
Arch
Browser (if applicable)
No response
Confirmation
README.md.Expected Behavior
Open WebUI should handle invalid URLs gracefully (e.g., log warnings instead of aborting the search).
Actual Behavior
Open WebUI raises socket.gaierror and aborts the search when encountering invalid URLs from searXNG, resulting in the status message "An error occurred while searching the web" and the model continuing to generate text with no search result context. Its reasoning will say stuff like "since i can't get up-to-date information, etc.
Steps to Reproduce
Logs & Screenshots
Additional Information
When Open WebUI’s web search functionality processes URLs provided by searXNG, it raises [Errno -2] Name or service not known errors if the URL cannot be resolved via DNS. This occurs because searXNG returns invalid domains like claudeai.wiki, which are confirmed unreachable via nslookup.
@tjbck commented on GitHub (Aug 2, 2025):
Intended behaviour.