[PR #20725] [CLOSED] Fix/socketio polling fallback #41378

Closed
opened 2026-04-25 13:38:03 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/open-webui/open-webui/pull/20725
Author: @taimax13
Created: 1/16/2026
Status: Closed

Base: devHead: fix/socketio-polling-fallback


📝 Commits (10+)

📊 Changes

3 files changed (+13 additions, -4 deletions)

View changed files

📝 backend/open_webui/env.py (+1 -1)
📝 backend/open_webui/socket/main.py (+8 -2)
📝 src/routes/+layout.svelte (+4 -1)

📄 Description

Description
Improves resilience of realtime channel on networks where WebSockets are blocked/flaky by allowing Socket.IO polling fallback (while still upgrading to WebSocket when available).
Fixes env var wiring so WEBSOCKET_SERVER_ENGINEIO_LOGGING can be enabled independently from WEBSOCKET_SERVER_LOGGING.
Added
WEBSOCKET_SERVER_ENGINEIO_LOGGING env var works as intended (separate toggle).
Changed
Socket.IO server transport configuration allows polling fallback when websockets are enabled.
Frontend Socket.IO client is allowed to use polling when websocket upgrades fail.
Fixed
WEBSOCKET_SERVER_ENGINEIO_LOGGING previously read WEBSOCKET_SERVER_LOGGING by mistake.
Additional Information
Related discussion: (paste your Discussions link here once created)
Motivation: Some environments block WS but allow HTTPS; polling fallback keeps UI usable and avoids “stuck streaming” UX.
Note: This does not address DNS ERR_NAME_NOT_RESOLVED itself (client-side), but mitigates WS-specific failures where HTTP works.
Testing
Manual:
Run app normally and verify Socket.IO still upgrades to websocket when available.
Simulate websocket-blocked environment (e.g. block WS upgrade / force polling) and verify UI remains functional (connect succeeds via polling).
Optionally enable logging:
WEBSOCKET_SERVER_LOGGING=true
WEBSOCKET_SERVER_ENGINEIO_LOGGING=true
Confirm engine.io logs appear.
Agentic AI Code

  • This PR was drafted with AI assistance, but was reviewed by me and I performed the manual tests listed above.”
    Changelog Entry
    Fixed
    Allow Socket.IO polling fallback when WebSocket is unavailable.
    Fix WEBSOCKET_SERVER_ENGINEIO_LOGGING env var parsing.
    contributor license agreement

🔄 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/20725 **Author:** [@taimax13](https://github.com/taimax13) **Created:** 1/16/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/socketio-polling-fallback` --- ### 📝 Commits (10+) - [`fe6783c`](https://github.com/open-webui/open-webui/commit/fe6783c16699911c7be17392596d579333fb110c) Merge pull request #19030 from open-webui/dev - [`fc05e0a`](https://github.com/open-webui/open-webui/commit/fc05e0a6c5d39da60b603b4d520f800d6e36f748) Merge pull request #19405 from open-webui/dev - [`e3faec6`](https://github.com/open-webui/open-webui/commit/e3faec62c58e3a83d89aa3df539feacefa125e0c) Merge pull request #19416 from open-webui/dev - [`9899293`](https://github.com/open-webui/open-webui/commit/9899293f050ad50ae12024cbebee7e018acd851e) Merge pull request #19448 from open-webui/dev - [`140605e`](https://github.com/open-webui/open-webui/commit/140605e660b8186a7d5c79fb3be6ffb147a2f498) Merge pull request #19462 from open-webui/dev - [`6f1486f`](https://github.com/open-webui/open-webui/commit/6f1486ffd0cb288d0e21f41845361924e0d742b3) Merge pull request #19466 from open-webui/dev - [`d95f533`](https://github.com/open-webui/open-webui/commit/d95f533214e3fe5beb5e41ec1f349940bc4c7043) Merge pull request #19729 from open-webui/dev - [`a727153`](https://github.com/open-webui/open-webui/commit/a7271532f8a38da46785afcaa7e65f9a45e7d753) 0.6.43 (#20093) - [`6adde20`](https://github.com/open-webui/open-webui/commit/6adde203cd292a9e3af9c64a2ae36b603fed096a) Merge pull request #20394 from open-webui/dev - [`f9b0534`](https://github.com/open-webui/open-webui/commit/f9b0534e0c442631d1cb7205169588b9b6204179) Merge pull request #20522 from open-webui/dev ### 📊 Changes **3 files changed** (+13 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `backend/open_webui/env.py` (+1 -1) 📝 `backend/open_webui/socket/main.py` (+8 -2) 📝 `src/routes/+layout.svelte` (+4 -1) </details> ### 📄 Description Description Improves resilience of realtime channel on networks where WebSockets are blocked/flaky by allowing Socket.IO polling fallback (while still upgrading to WebSocket when available). Fixes env var wiring so WEBSOCKET_SERVER_ENGINEIO_LOGGING can be enabled independently from WEBSOCKET_SERVER_LOGGING. Added WEBSOCKET_SERVER_ENGINEIO_LOGGING env var works as intended (separate toggle). Changed Socket.IO server transport configuration allows polling fallback when websockets are enabled. Frontend Socket.IO client is allowed to use polling when websocket upgrades fail. Fixed WEBSOCKET_SERVER_ENGINEIO_LOGGING previously read WEBSOCKET_SERVER_LOGGING by mistake. Additional Information Related discussion: (paste your Discussions link here once created) Motivation: Some environments block WS but allow HTTPS; polling fallback keeps UI usable and avoids “stuck streaming” UX. Note: This does not address DNS ERR_NAME_NOT_RESOLVED itself (client-side), but mitigates WS-specific failures where HTTP works. Testing Manual: Run app normally and verify Socket.IO still upgrades to websocket when available. Simulate websocket-blocked environment (e.g. block WS upgrade / force polling) and verify UI remains functional (connect succeeds via polling). Optionally enable logging: WEBSOCKET_SERVER_LOGGING=true WEBSOCKET_SERVER_ENGINEIO_LOGGING=true Confirm engine.io logs appear. Agentic AI Code - This PR was drafted with AI assistance, but was reviewed by me and I performed the manual tests listed above.” Changelog Entry Fixed Allow Socket.IO polling fallback when WebSocket is unavailable. Fix WEBSOCKET_SERVER_ENGINEIO_LOGGING env var parsing. contributor license agreement --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-25 13:38:03 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#41378