[GH-ISSUE #23127] issue: FETCH_URL_MAX_CONTENT_LENGTH not saving. #35418

Closed
opened 2026-04-25 09:37:24 -05:00 by GiteaMirror · 3 comments
Owner

Originally created by @taggedzi on GitHub (Mar 27, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23127

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!).
  • I am using the latest version of Open WebUI.

Installation Method

Pip Install

Open WebUI Version

v0.8.12

Ollama Version (if applicable)

v0.18.3

Operating System

Windows 11 Home

Browser (if applicable)

Firefox v149.0 (64-bit)

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

When Fetch URL Content Length Limit is set on the Web Search section of the Admin Settings, I expect to successfully save the value.

Actual Behavior

It returns an error and does not save. It also generates an error in the console.


### Steps to Reproduce

## Steps to reproduce

1. Boot Windows 11 Home 25H2
1. Open Powershell 5.1.26100.7920
1. Navigate to an empty directory
1. Install python. I did this years ago and installed it with `py` included. I do not remember the exact commands. That said, I call `py` to install the specified version that command is followed bellow.
1. Run `py -3.11 -m venv .venv` (As per README.md python 3.11 requirement))
1. Run `./venv/Scripts/Activate.ps1` (Activate environment)
1. Run `python.exe -m pip install --upgrade pip` (To upgrade pip -> not required but a habbit of mine.)
1. Run `open-webui server`
1. Open web browser of choice. I used Firefox v149.0 (64-bit)
1. Open local site on browser: [http://localhost:8080/](http://localhost:8080/)
1. Generate account. Entered email address, username, and password. (Actual values are not relevant to this bug so long as you can remember them to login.)
1. Navigate to `Web Search`.  [http://localhost:8080/admin/settings/web](http://localhost:8080/admin/settings/web)
	- You can use the link here otherwise here are the click through instructions I followed: 
		- I clicked on my name (bottom left corner)
		- Then went to `Settings` with the gear icon. 
		- Then at the bottom left of the Settings modal I selected `Admin Settings`
		- Then on the left side of the Admin Settings I selected `Web Search` with the globe icon.
1. On the Web Searc page
	- Enable Websearch
	- Select Web Search Engine. I chose `google_pse` but I think this choice does not impact the test.
	- Enter your Google PSE API Key (not sure if this is nessicary but I did)
	- Enter the coresponding Google PSE Engine ID (I entered mine)
	- It doesn't matter what value you set for `Fetch URL Context Length Limit` when you save in the powershell console you get the generated error.

<img width="1326" height="870" alt="Image" src="https://github.com/user-attachments/assets/789e1f98-cc12-4f25-875d-30b55e43e528" />

### Logs & Screenshots

<img width="1396" height="958" alt="Image" src="https://github.com/user-attachments/assets/0b0e7e26-4935-4d5d-addd-824e0f4700b4" />

```dev-console
XHRPOST
http://localhost:8080/api/v1/retrieval/config/update
[HTTP/1.1 500 Internal Server Error 11300ms]

	
POST
	http://localhost:8080/api/v1/retrieval/config/update
Status
500
Internal Server Error
VersionHTTP/1.1
Transferred174 B (21 B size)
Referrer Policystrict-origin-when-cross-origin
Request PriorityHighest
DNS ResolutionSystem

    	
    content-length
    	21
    content-type
    	text/plain; charset=utf-8
    date
    	Fri, 27 Mar 2026 03:46:17 GMT
    server
    	uvicorn
    	
    Accept
    	*/*
    Accept-Encoding
    	gzip, deflate, br, zstd
    Accept-Language
    	en-US,en;q=0.9
    Authorization
    	Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkNTk2ZDdmLWQ1ODktNDEzMS1hNDllLWIyYjE5ZTkxMzAyMyIsImV4cCI6MTc3Njk5NzU1MSwianRpIjoiNjJlNGY1NDYtYjA4ZS00NzFlLTg0YWQtYzU5YjVkNGIyZTY3In0._ExqK1DWH9dYvomMBfdyYV0lbceqZOWkS7Ku2sDbLZU
    Cache-Control
    	no-cache
    Connection
    	keep-alive
    Content-Length
    	1882
    Content-Type
    	application/json
    Cookie
    	token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkNTk2ZDdmLWQ1ODktNDEzMS1hNDllLWIyYjE5ZTkxMzAyMyIsImV4cCI6MTc3Njk5NzU1MSwianRpIjoiNjJlNGY1NDYtYjA4ZS00NzFlLTg0YWQtYzU5YjVkNGIyZTY3In0._ExqK1DWH9dYvomMBfdyYV0lbceqZOWkS7Ku2sDbLZU
    DNT
    	1
    Host
    	localhost:8080
    Origin
    	http://localhost:8080
    Pragma
    	no-cache
    Priority
    	u=0
    Referer
    	http://localhost:8080/admin/settings/web
    Sec-Fetch-Dest
    	empty
    Sec-Fetch-Mode
    	cors
    Sec-Fetch-Site
    	same-origin
    Sec-GPC
    	1
    User-Agent
    	Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0
Exception in ASGI application
  + Exception Group Traceback (most recent call last):
  |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 81, in collapse_excgroups
  |     yield
  |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 192, in __call__
  |     async with anyio.create_task_group() as task_group:
  |   File "***************************\open-webui\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 799, in __aexit__
  |     raise BaseExceptionGroup(
  | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 416, in run_asgi
    |     result = await app(  # type: ignore[func-returns-value]
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
    |     return await self.app(scope, receive, send)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\applications.py", line 1160, in __call__
    |     await super().__call__(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\applications.py", line 90, in __call__
    |     await self.middleware_stack(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 186, in __call__
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 164, in __call__
    |     await self.app(scope, receive, _send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\sessions.py", line 88, in __call__
    |     await self.app(scope, receive, send_wrapper)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 96, in __call__
    |     await self.simple_response(scope, receive, send, request_headers=headers)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 154, in simple_response
    |     await self.app(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1472, in inspect_websocket
    |     return await call_next(request)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1454, in check_url
    |     response = await call_next(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1421, in commit_session_after_request
    |     response = await call_next(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1413, in __call__
    |     await self.app(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\utils\security_headers.py", line 11, in dispatch
    |     response = await call_next(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    |     with recv_stream, send_stream, collapse_excgroups():
    |   File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    |     self.gen.throw(typ, value, traceback)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    |     response = await self.dispatch_func(request, call_next)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1366, in dispatch
    |     response = await call_next(request)
    |                ^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    |     raise app_exc from app_exc.__cause__ or app_exc.__context__
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    |     await self.app(scope, receive_or_disconnect, send_no_error)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\__init__.py", line 104, in __call__
    |     return await self._zstd(scope, receive, send)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\_zstd_legacy.py", line 107, in __call__
    |     await self.app(scope, receive, wrapper)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 63, in __call__
    |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    |     await app(scope, receive, sender)
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    |     await self.app(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 660, in __call__
    |     await self.middleware_stack(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 680, in app
    |     await route.handle(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 276, in handle
    |     await self.app(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 130, in app
    |     await wrap_app_handling_exceptions(app, request)(scope, receive, send)
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    |     raise exc
    |   File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    |     await app(scope, receive, sender)
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 116, in app
    |     response = await f(request)
    |                ^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 670, in app
    |     raw_response = await run_endpoint_function(
    |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 324, in run_endpoint_function
    |     return await dependant.call(**values)
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\routers\retrieval.py", line 1177, in update_rag_config
    |     'FETCH_URL_MAX_CONTENT_LENGTH': request.app.state.config.FETCH_URL_MAX_CONTENT_LENGTH,
    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |   File "***************************\open-webui\.venv\Lib\site-packages\open_webui\config.py", line 257, in __getattr__
    |     raise AttributeError(f"Config key '{key}' not found")
    | AttributeError: Config key 'FETCH_URL_MAX_CONTENT_LENGTH' not found
    +------------------------------------

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 416, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__
    return await self.app(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\applications.py", line 1160, in __call__
    await super().__call__(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\applications.py", line 90, in __call__
    await self.middleware_stack(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 186, in __call__
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\sessions.py", line 88, in __call__
    await self.app(scope, receive, send_wrapper)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 96, in __call__
    await self.simple_response(scope, receive, send, request_headers=headers)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 154, in simple_response
    await self.app(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1472, in inspect_websocket
    return await call_next(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    raise app_exc from app_exc.__cause__ or app_exc.__context__
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1454, in check_url
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    raise app_exc from app_exc.__cause__ or app_exc.__context__
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1421, in commit_session_after_request
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    raise app_exc from app_exc.__cause__ or app_exc.__context__
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1413, in __call__
    await self.app(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\utils\security_headers.py", line 11, in dispatch
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    raise app_exc from app_exc.__cause__ or app_exc.__context__
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__
    with recv_stream, send_stream, collapse_excgroups():
  File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__
    response = await self.dispatch_func(request, call_next)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1366, in dispatch
    response = await call_next(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next
    raise app_exc from app_exc.__cause__ or app_exc.__context__
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro
    await self.app(scope, receive_or_disconnect, send_no_error)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\__init__.py", line 104, in __call__
    return await self._zstd(scope, receive, send)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\_zstd_legacy.py", line 107, in __call__
    await self.app(scope, receive, wrapper)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 63, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 660, in __call__
    await self.middleware_stack(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 680, in app
    await route.handle(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 130, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app
    raise exc
  File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app
    await app(scope, receive, sender)
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 116, in app
    response = await f(request)
               ^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 670, in app
    raw_response = await run_endpoint_function(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 324, in run_endpoint_function
    return await dependant.call(**values)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\routers\retrieval.py", line 1177, in update_rag_config
    'FETCH_URL_MAX_CONTENT_LENGTH': request.app.state.config.FETCH_URL_MAX_CONTENT_LENGTH,
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "***************************\open-webui\.venv\Lib\site-packages\open_webui\config.py", line 257, in __getattr__
    raise AttributeError(f"Config key '{key}' not found")
AttributeError: Config key 'FETCH_URL_MAX_CONTENT_LENGTH' not found

### Additional Information

_No response_
Originally created by @taggedzi on GitHub (Mar 27, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/23127 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). - [x] I am using the latest version of Open WebUI. ### Installation Method Pip Install ### Open WebUI Version v0.8.12 ### Ollama Version (if applicable) v0.18.3 ### Operating System Windows 11 Home ### Browser (if applicable) Firefox v149.0 (64-bit) ### 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 When `Fetch URL Content Length Limit` is set on the Web Search section of the Admin Settings, I expect to successfully save the value. ### Actual Behavior It returns an error and does not save. It also generates an error in the console. ``` ### Steps to Reproduce ## Steps to reproduce 1. Boot Windows 11 Home 25H2 1. Open Powershell 5.1.26100.7920 1. Navigate to an empty directory 1. Install python. I did this years ago and installed it with `py` included. I do not remember the exact commands. That said, I call `py` to install the specified version that command is followed bellow. 1. Run `py -3.11 -m venv .venv` (As per README.md python 3.11 requirement)) 1. Run `./venv/Scripts/Activate.ps1` (Activate environment) 1. Run `python.exe -m pip install --upgrade pip` (To upgrade pip -> not required but a habbit of mine.) 1. Run `open-webui server` 1. Open web browser of choice. I used Firefox v149.0 (64-bit) 1. Open local site on browser: [http://localhost:8080/](http://localhost:8080/) 1. Generate account. Entered email address, username, and password. (Actual values are not relevant to this bug so long as you can remember them to login.) 1. Navigate to `Web Search`. [http://localhost:8080/admin/settings/web](http://localhost:8080/admin/settings/web) - You can use the link here otherwise here are the click through instructions I followed: - I clicked on my name (bottom left corner) - Then went to `Settings` with the gear icon. - Then at the bottom left of the Settings modal I selected `Admin Settings` - Then on the left side of the Admin Settings I selected `Web Search` with the globe icon. 1. On the Web Searc page - Enable Websearch - Select Web Search Engine. I chose `google_pse` but I think this choice does not impact the test. - Enter your Google PSE API Key (not sure if this is nessicary but I did) - Enter the coresponding Google PSE Engine ID (I entered mine) - It doesn't matter what value you set for `Fetch URL Context Length Limit` when you save in the powershell console you get the generated error. <img width="1326" height="870" alt="Image" src="https://github.com/user-attachments/assets/789e1f98-cc12-4f25-875d-30b55e43e528" /> ### Logs & Screenshots <img width="1396" height="958" alt="Image" src="https://github.com/user-attachments/assets/0b0e7e26-4935-4d5d-addd-824e0f4700b4" /> ```dev-console XHRPOST http://localhost:8080/api/v1/retrieval/config/update [HTTP/1.1 500 Internal Server Error 11300ms] POST http://localhost:8080/api/v1/retrieval/config/update Status 500 Internal Server Error VersionHTTP/1.1 Transferred174 B (21 B size) Referrer Policystrict-origin-when-cross-origin Request PriorityHighest DNS ResolutionSystem content-length 21 content-type text/plain; charset=utf-8 date Fri, 27 Mar 2026 03:46:17 GMT server uvicorn Accept */* Accept-Encoding gzip, deflate, br, zstd Accept-Language en-US,en;q=0.9 Authorization Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkNTk2ZDdmLWQ1ODktNDEzMS1hNDllLWIyYjE5ZTkxMzAyMyIsImV4cCI6MTc3Njk5NzU1MSwianRpIjoiNjJlNGY1NDYtYjA4ZS00NzFlLTg0YWQtYzU5YjVkNGIyZTY3In0._ExqK1DWH9dYvomMBfdyYV0lbceqZOWkS7Ku2sDbLZU Cache-Control no-cache Connection keep-alive Content-Length 1882 Content-Type application/json Cookie token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZkNTk2ZDdmLWQ1ODktNDEzMS1hNDllLWIyYjE5ZTkxMzAyMyIsImV4cCI6MTc3Njk5NzU1MSwianRpIjoiNjJlNGY1NDYtYjA4ZS00NzFlLTg0YWQtYzU5YjVkNGIyZTY3In0._ExqK1DWH9dYvomMBfdyYV0lbceqZOWkS7Ku2sDbLZU DNT 1 Host localhost:8080 Origin http://localhost:8080 Pragma no-cache Priority u=0 Referer http://localhost:8080/admin/settings/web Sec-Fetch-Dest empty Sec-Fetch-Mode cors Sec-Fetch-Site same-origin Sec-GPC 1 User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0 ``` ```powershell Exception in ASGI application + Exception Group Traceback (most recent call last): | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 81, in collapse_excgroups | yield | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 192, in __call__ | async with anyio.create_task_group() as task_group: | File "***************************\open-webui\.venv\Lib\site-packages\anyio\_backends\_asyncio.py", line 799, in __aexit__ | raise BaseExceptionGroup( | ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception) +-+---------------- 1 ---------------- | Traceback (most recent call last): | File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 416, in run_asgi | result = await app( # type: ignore[func-returns-value] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__ | return await self.app(scope, receive, send) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\applications.py", line 1160, in __call__ | await super().__call__(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\applications.py", line 90, in __call__ | await self.middleware_stack(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 186, in __call__ | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 164, in __call__ | await self.app(scope, receive, _send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\sessions.py", line 88, in __call__ | await self.app(scope, receive, send_wrapper) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 96, in __call__ | await self.simple_response(scope, receive, send, request_headers=headers) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 154, in simple_response | await self.app(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ | with recv_stream, send_stream, collapse_excgroups(): | File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1472, in inspect_websocket | return await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next | raise app_exc from app_exc.__cause__ or app_exc.__context__ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ | with recv_stream, send_stream, collapse_excgroups(): | File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1454, in check_url | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next | raise app_exc from app_exc.__cause__ or app_exc.__context__ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ | with recv_stream, send_stream, collapse_excgroups(): | File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1421, in commit_session_after_request | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next | raise app_exc from app_exc.__cause__ or app_exc.__context__ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1413, in __call__ | await self.app(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ | with recv_stream, send_stream, collapse_excgroups(): | File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\utils\security_headers.py", line 11, in dispatch | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next | raise app_exc from app_exc.__cause__ or app_exc.__context__ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ | with recv_stream, send_stream, collapse_excgroups(): | File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ | self.gen.throw(typ, value, traceback) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ | response = await self.dispatch_func(request, call_next) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1366, in dispatch | response = await call_next(request) | ^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next | raise app_exc from app_exc.__cause__ or app_exc.__context__ | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro | await self.app(scope, receive_or_disconnect, send_no_error) | File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\__init__.py", line 104, in __call__ | return await self._zstd(scope, receive, send) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\_zstd_legacy.py", line 107, in __call__ | await self.app(scope, receive, wrapper) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 63, in __call__ | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app | await app(scope, receive, sender) | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__ | await self.app(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 660, in __call__ | await self.middleware_stack(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 680, in app | await route.handle(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 276, in handle | await self.app(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 130, in app | await wrap_app_handling_exceptions(app, request)(scope, receive, send) | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app | raise exc | File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app | await app(scope, receive, sender) | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 116, in app | response = await f(request) | ^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 670, in app | raw_response = await run_endpoint_function( | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 324, in run_endpoint_function | return await dependant.call(**values) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\routers\retrieval.py", line 1177, in update_rag_config | 'FETCH_URL_MAX_CONTENT_LENGTH': request.app.state.config.FETCH_URL_MAX_CONTENT_LENGTH, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "***************************\open-webui\.venv\Lib\site-packages\open_webui\config.py", line 257, in __getattr__ | raise AttributeError(f"Config key '{key}' not found") | AttributeError: Config key 'FETCH_URL_MAX_CONTENT_LENGTH' not found +------------------------------------ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 416, in run_asgi result = await app( # type: ignore[func-returns-value] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\uvicorn\middleware\proxy_headers.py", line 60, in __call__ return await self.app(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\fastapi\applications.py", line 1160, in __call__ await super().__call__(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\applications.py", line 90, in __call__ await self.middleware_stack(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 186, in __call__ raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\errors.py", line 164, in __call__ await self.app(scope, receive, _send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\sessions.py", line 88, in __call__ await self.app(scope, receive, send_wrapper) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 96, in __call__ await self.simple_response(scope, receive, send, request_headers=headers) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\cors.py", line 154, in simple_response await self.app(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ with recv_stream, send_stream, collapse_excgroups(): File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1472, in inspect_websocket return await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next raise app_exc from app_exc.__cause__ or app_exc.__context__ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ with recv_stream, send_stream, collapse_excgroups(): File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1454, in check_url response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next raise app_exc from app_exc.__cause__ or app_exc.__context__ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ with recv_stream, send_stream, collapse_excgroups(): File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1421, in commit_session_after_request response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next raise app_exc from app_exc.__cause__ or app_exc.__context__ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1413, in __call__ await self.app(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ with recv_stream, send_stream, collapse_excgroups(): File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\utils\security_headers.py", line 11, in dispatch response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next raise app_exc from app_exc.__cause__ or app_exc.__context__ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 191, in __call__ with recv_stream, send_stream, collapse_excgroups(): File "C:\Users\**********\AppData\Local\Programs\Python\Python311\Lib\contextlib.py", line 158, in __exit__ self.gen.throw(typ, value, traceback) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_utils.py", line 87, in collapse_excgroups raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 193, in __call__ response = await self.dispatch_func(request, call_next) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\main.py", line 1366, in dispatch response = await call_next(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 168, in call_next raise app_exc from app_exc.__cause__ or app_exc.__context__ File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\base.py", line 144, in coro await self.app(scope, receive_or_disconnect, send_no_error) File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\__init__.py", line 104, in __call__ return await self._zstd(scope, receive, send) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\starlette_compress\_zstd_legacy.py", line 107, in __call__ await self.app(scope, receive, wrapper) File "***************************\open-webui\.venv\Lib\site-packages\starlette\middleware\exceptions.py", line 63, in __call__ await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "***************************\open-webui\.venv\Lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in __call__ await self.app(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 660, in __call__ await self.middleware_stack(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 680, in app await route.handle(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\routing.py", line 276, in handle await self.app(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 130, in app await wrap_app_handling_exceptions(app, request)(scope, receive, send) File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 53, in wrapped_app raise exc File "***************************\open-webui\.venv\Lib\site-packages\starlette\_exception_handler.py", line 42, in wrapped_app await app(scope, receive, sender) File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 116, in app response = await f(request) ^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 670, in app raw_response = await run_endpoint_function( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\fastapi\routing.py", line 324, in run_endpoint_function return await dependant.call(**values) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\routers\retrieval.py", line 1177, in update_rag_config 'FETCH_URL_MAX_CONTENT_LENGTH': request.app.state.config.FETCH_URL_MAX_CONTENT_LENGTH, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "***************************\open-webui\.venv\Lib\site-packages\open_webui\config.py", line 257, in __getattr__ raise AttributeError(f"Config key '{key}' not found") AttributeError: Config key 'FETCH_URL_MAX_CONTENT_LENGTH' not found ### Additional Information _No response_
GiteaMirror added the bug label 2026-04-25 09:37:24 -05:00
Author
Owner

@steffen-karlsson commented on GitHub (Mar 30, 2026):

I'm experiencing the same on the newest version, Im working currently on a PR for it, lets see if it get merged, as Im blocked by it as well.

<!-- gh-comment-id:4154067296 --> @steffen-karlsson commented on GitHub (Mar 30, 2026): I'm experiencing the same on the newest version, Im working currently on a PR for it, lets see if it get merged, as Im blocked by it as well.
Author
Owner

@steffen-karlsson commented on GitHub (Mar 30, 2026):

Proposed a fix here: https://github.com/open-webui/open-webui/pull/23226

<!-- gh-comment-id:4154159497 --> @steffen-karlsson commented on GitHub (Mar 30, 2026): Proposed a fix here: https://github.com/open-webui/open-webui/pull/23226
Author
Owner

@tjbck commented on GitHub (Apr 1, 2026):

Addressed in dev.

<!-- gh-comment-id:4169236639 --> @tjbck commented on GitHub (Apr 1, 2026): Addressed in dev.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#35418