The application currently ignores the PLAYWRIGHT_TIMEOUT environment variable when using the Playwright web loader. This causes web searches to fail with a Connection timed out error after exactly 30 seconds, which appears to be the hard-coded default timeout of the Playwright library's connect method.
Evidence:
The open-webui log consistently shows the process timing out after ~30 seconds, regardless of the PLAYWRIGHT_TIMEOUT value set in the environment or the UI.
The corresponding browserless log shows that it receives the connection request and successfully launches a Chrome instance in under a second. It then waits idle for 30 seconds until the client disconnects.
This proves the server-side (browserless) is working correctly and the timeout is client-side (open-webui).
The Fix:
This commit resolves the issue by passing the self.playwright_timeout value to the p.chromium.connect() call in /backend/open_webui/retrieval/web/utils.py, ensuring the user-configured timeout is respected.
🔄 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/18027
**Author:** [@dmitrysrtx](https://github.com/dmitrysrtx)
**Created:** 10/3/2025
**Status:** ❌ Closed
**Base:** `main` ← **Head:** `fix-playwright-timeout`
---
### 📝 Commits (1)
- [`94a8f62`](https://github.com/open-webui/open-webui/commit/94a8f62b2a29264994791ce826820f37214dd850) Fix(RAG): Pass playwright_timeout to browser connect method
### 📊 Changes
**1 file changed** (+3 additions, -1 deletions)
<details>
<summary>View changed files</summary>
📝 `backend/open_webui/retrieval/web/utils.py` (+3 -1)
</details>
### 📄 Description
Description:
The application currently ignores the PLAYWRIGHT_TIMEOUT environment variable when using the Playwright web loader. This causes web searches to fail with a Connection timed out error after exactly 30 seconds, which appears to be the hard-coded default timeout of the Playwright library's connect method.
Evidence:
The open-webui log consistently shows the process timing out after ~30 seconds, regardless of the PLAYWRIGHT_TIMEOUT value set in the environment or the UI.
The corresponding browserless log shows that it receives the connection request and successfully launches a Chrome instance in under a second. It then waits idle for 30 seconds until the client disconnects.
This proves the server-side (browserless) is working correctly and the timeout is client-side (open-webui).
The Fix:
This commit resolves the issue by passing the self.playwright_timeout value to the p.chromium.connect() call in /backend/open_webui/retrieval/web/utils.py, ensuring the user-configured timeout is respected.
---
<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/18027
Author: @dmitrysrtx
Created: 10/3/2025
Status: ❌ Closed
Base:
main← Head:fix-playwright-timeout📝 Commits (1)
94a8f62Fix(RAG): Pass playwright_timeout to browser connect method📊 Changes
1 file changed (+3 additions, -1 deletions)
View changed files
📝
backend/open_webui/retrieval/web/utils.py(+3 -1)📄 Description
Description:
The application currently ignores the PLAYWRIGHT_TIMEOUT environment variable when using the Playwright web loader. This causes web searches to fail with a Connection timed out error after exactly 30 seconds, which appears to be the hard-coded default timeout of the Playwright library's connect method.
Evidence:
The Fix:
This commit resolves the issue by passing the self.playwright_timeout value to the p.chromium.connect() call in /backend/open_webui/retrieval/web/utils.py, ensuring the user-configured timeout is respected.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.