When the Socket.IO connection is not established (e.g., stale auth state after upgrade, network blip, or browser reconnection failure), the streaming response handler in middleware.py takes the fallback path which silently skips all background tasks — title generation, follow-up suggestions, and tag generation.
No error is logged. No warning is emitted. The chat response streams normally via SSE, but the title stays "New Chat" forever.
Steps to Reproduce
Upgrade from v0.8.8 to v0.8.11
If the browser has stale auth/session state, Socket.IO may fail to connect
Send a message in a new chat
Observe: response streams normally, but title is never generated
Root Cause
streaming_chat_response_handler in backend/open_webui/utils/middleware.py branches on event_emitter and event_caller:
event_emitter requires session_id (from Socket.IO $socket?.id). If Socket.IO isn't connected, session_id is null, event_emitter is None, and the fallback path is taken.
The fallback path has no logging indicating that background tasks were skipped. From the user's perspective, everything works except titles/follow-ups/tags silently stop.
Expected Behavior
At minimum: a warning log when background tasks are skipped due to missing event_emitter
Ideally: background tasks (especially title generation) should still execute via a fallback mechanism (e.g., REST callback, inline processing) when Socket.IO is unavailable
Environment
Open WebUI v0.8.11
Deployed on ECS Fargate behind AWS ALB
WebSocket upgrade works (confirmed via curl: 101 Switching Protocols)
Socket.IO endpoint responds at /ws/socket.io/ (rejects polling: "Invalid transport")
Browser client fails to establish Socket.IO after version upgrade
Impact
This is a silent production failure. All background task features (title generation, follow-up suggestions, tag generation) stop working with no indication to admins or users. The only symptom is "New Chat" titles, which is easily mistaken for a config issue.
Originally created by @ataraxiaone on GitHub (Mar 31, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23268
## Description
When the Socket.IO connection is not established (e.g., stale auth state after upgrade, network blip, or browser reconnection failure), the streaming response handler in `middleware.py` takes the fallback path which **silently skips all background tasks** — title generation, follow-up suggestions, and tag generation.
No error is logged. No warning is emitted. The chat response streams normally via SSE, but the title stays "New Chat" forever.
## Steps to Reproduce
1. Upgrade from v0.8.8 to v0.8.11
2. If the browser has stale auth/session state, Socket.IO may fail to connect
3. Send a message in a new chat
4. Observe: response streams normally, but title is never generated
## Root Cause
`streaming_chat_response_handler` in `backend/open_webui/utils/middleware.py` branches on `event_emitter and event_caller`:
```python
if event_emitter and event_caller:
# Main path — processes response + runs background_tasks_handler
# (title gen, follow-ups, tags)
else:
# Fallback path — streams SSE passthrough, NO background tasks
```
`event_emitter` requires `session_id` (from Socket.IO `$socket?.id`). If Socket.IO isn't connected, `session_id` is null, `event_emitter` is None, and the fallback path is taken.
The fallback path has **no logging** indicating that background tasks were skipped. From the user's perspective, everything works except titles/follow-ups/tags silently stop.
## Expected Behavior
- At minimum: a warning log when background tasks are skipped due to missing event_emitter
- Ideally: background tasks (especially title generation) should still execute via a fallback mechanism (e.g., REST callback, inline processing) when Socket.IO is unavailable
## Environment
- Open WebUI v0.8.11
- Deployed on ECS Fargate behind AWS ALB
- WebSocket upgrade works (confirmed via curl: 101 Switching Protocols)
- Socket.IO endpoint responds at `/ws/socket.io/` (rejects polling: "Invalid transport")
- Browser client fails to establish Socket.IO after version upgrade
## Impact
This is a **silent production failure**. All background task features (title generation, follow-up suggestions, tag generation) stop working with no indication to admins or users. The only symptom is "New Chat" titles, which is easily mistaken for a config issue.
@pr-validator-bot commented on GitHub (Mar 31, 2026):
⚠️ Missing Issue Title Prefix
@ataraxiaone, your issue title is missing a prefix (e.g., bug:, feat:, docs:).
Please update your issue title to include one of the following prefixes:
bug: Bug report or error you've encountered
feat: Feature request or enhancement suggestion
docs: Documentation issue or improvement request
question: Question about usage or functionality
help: Request for help or support
Example: bug: Login fails when using special characters in password
<!-- gh-comment-id:4163848794 -->
@pr-validator-bot commented on GitHub (Mar 31, 2026):
# ⚠️ Missing Issue Title Prefix
@ataraxiaone, your issue title is missing a prefix (e.g., `bug:`, `feat:`, `docs:`).
Please update your issue title to include one of the following prefixes:
- **bug**: Bug report or error you've encountered
- **feat**: Feature request or enhancement suggestion
- **docs**: Documentation issue or improvement request
- **question**: Question about usage or functionality
- **help**: Request for help or support
Example: `bug: Login fails when using special characters in password`
Version upgrades force a refresh so this should not have happened in the first place. With that being said, event_emitter no longer depend on Socket.IO connectivity (session_id) at all in dev.
<!-- gh-comment-id:4169041497 -->
@tjbck commented on GitHub (Apr 1, 2026):
Version upgrades force a refresh so this should not have happened in the first place. With that being said, event_emitter no longer depend on Socket.IO connectivity (session_id) at all in dev.
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.
Originally created by @ataraxiaone on GitHub (Mar 31, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23268
Description
When the Socket.IO connection is not established (e.g., stale auth state after upgrade, network blip, or browser reconnection failure), the streaming response handler in
middleware.pytakes the fallback path which silently skips all background tasks — title generation, follow-up suggestions, and tag generation.No error is logged. No warning is emitted. The chat response streams normally via SSE, but the title stays "New Chat" forever.
Steps to Reproduce
Root Cause
streaming_chat_response_handlerinbackend/open_webui/utils/middleware.pybranches onevent_emitter and event_caller:event_emitterrequiressession_id(from Socket.IO$socket?.id). If Socket.IO isn't connected,session_idis null,event_emitteris None, and the fallback path is taken.The fallback path has no logging indicating that background tasks were skipped. From the user's perspective, everything works except titles/follow-ups/tags silently stop.
Expected Behavior
Environment
/ws/socket.io/(rejects polling: "Invalid transport")Impact
This is a silent production failure. All background task features (title generation, follow-up suggestions, tag generation) stop working with no indication to admins or users. The only symptom is "New Chat" titles, which is easily mistaken for a config issue.
@pr-validator-bot commented on GitHub (Mar 31, 2026):
⚠️ Missing Issue Title Prefix
@ataraxiaone, your issue title is missing a prefix (e.g.,
bug:,feat:,docs:).Please update your issue title to include one of the following prefixes:
Example:
bug: Login fails when using special characters in password@tjbck commented on GitHub (Apr 1, 2026):
Version upgrades force a refresh so this should not have happened in the first place. With that being said, event_emitter no longer depend on Socket.IO connectivity (session_id) at all in dev.