[GH-ISSUE #16227] issue: Open WebUI aborts search on invalid URLs from searXNG #33359

Closed
opened 2026-04-25 07:15:31 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @OracleToes on GitHub (Aug 2, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16227

Check Existing Issues

  • I have searched the existing issues and discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Pip Install

Open WebUI Version

v0.6.18

Ollama Version (if applicable)

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

  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.

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-04-25 07:15:31 -05:00
Author
Owner

@tjbck commented on GitHub (Aug 2, 2025):

Intended behaviour.

<!-- gh-comment-id:3146565172 --> @tjbck commented on GitHub (Aug 2, 2025): Intended behaviour.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#33359