Fix TypeError caused by duplicate allow_redirects keyword argument in SafeWebBaseLoader._fetch(), which broke all web search functionality when WEB_LOADER_ENGINE is safe_web.
Fixed
Removed the explicit allow_redirects=AIOHTTP_CLIENT_ALLOW_REDIRECTS from the session.get() call in _fetch(). The value is already present in self.requests_kwargs (set in __init__), so the explicit parameter causes aiohttp to reject the duplicate kwarg.
Root Cause
In __init__, allow_redirects is added to self.requests_kwargs:
Confirmed by @farid-abu-issa on Railway deployment (v0.9.5)
SSRF protection is preserved since the value remains in self.requests_kwargs
Contributor License Agreement
By submitting this pull request, I confirm that I have read and fully agree to the Contributor License Agreement (CLA), and I am providing my contributions under its terms.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/24602
**Author:** [@EvanYao826](https://github.com/EvanYao826)
**Created:** 5/12/2026
**Status:** 🔄 Open
**Base:** `dev` ← **Head:** `fix/safe-web-loader-dup-v3`
---
### 📝 Commits (1)
- [`b75e7fc`](https://github.com/open-webui/open-webui/commit/b75e7fc9d5bc464d39ff0ec6ae029a3f982d620f) fix: remove duplicate allow_redirects in SafeWebBaseLoader._fetch
### 📊 Changes
**1 file changed** (+0 additions, -1 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/open_webui/retrieval/web/utils.py` (+0 -1)
</details>
### 📄 Description
Closes #24560
### Description
- Fix TypeError caused by duplicate `allow_redirects` keyword argument in `SafeWebBaseLoader._fetch()`, which broke all web search functionality when `WEB_LOADER_ENGINE` is `safe_web`.
### Fixed
- Removed the explicit `allow_redirects=AIOHTTP_CLIENT_ALLOW_REDIRECTS` from the `session.get()` call in `_fetch()`. The value is already present in `self.requests_kwargs` (set in `__init__`), so the explicit parameter causes `aiohttp` to reject the duplicate kwarg.
### Root Cause
In `__init__`, `allow_redirects` is added to `self.requests_kwargs`:
```python
self.requests_kwargs = {
**(self.requests_kwargs or {}),
'allow_redirects': AIOHTTP_CLIENT_ALLOW_REDIRECTS,
}
```
Then in `_fetch`, it's passed twice:
```python
async with session.get(
url,
**(self.requests_kwargs | kwargs), # already contains allow_redirects
allow_redirects=AIOHTTP_CLIENT_ALLOW_REDIRECTS, # duplicate!
) as response:
```
### Additional Information
- Introduced by PR #24524
- Confirmed by @farid-abu-issa on Railway deployment (v0.9.5)
- SSRF protection is preserved since the value remains in `self.requests_kwargs`
---
### Contributor License Agreement
- [x] By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/24602
Author: @EvanYao826
Created: 5/12/2026
Status: 🔄 Open
Base:
dev← Head:fix/safe-web-loader-dup-v3📝 Commits (1)
b75e7fcfix: remove duplicate allow_redirects in SafeWebBaseLoader._fetch📊 Changes
1 file changed (+0 additions, -1 deletions)
View changed files
📝
backend/open_webui/retrieval/web/utils.py(+0 -1)📄 Description
Closes #24560
Description
allow_redirectskeyword argument inSafeWebBaseLoader._fetch(), which broke all web search functionality whenWEB_LOADER_ENGINEissafe_web.Fixed
allow_redirects=AIOHTTP_CLIENT_ALLOW_REDIRECTSfrom thesession.get()call in_fetch(). The value is already present inself.requests_kwargs(set in__init__), so the explicit parameter causesaiohttpto reject the duplicate kwarg.Root Cause
In
__init__,allow_redirectsis added toself.requests_kwargs:Then in
_fetch, it's passed twice:Additional Information
self.requests_kwargsContributor License Agreement
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.