open-webui-valkey-websocketlisted
Install: claude install-skill air-gapped/skills
# Open WebUI multi-pod with Valkey Sentinel + WebSockets — operator reference
Target: deploying Open WebUI on Kubernetes with 3+ replicas, WebSocket support enabled, Valkey Sentinel for shared state and Socket.IO pub/sub, at 1000+ user scale. Sentinel is the topology — not a recommendation, just the operating reality.
Siblings in the `open-webui` plugin: driving configuration, users, and the model catalog through the REST API instead of the UI is **`open-webui-api`**; the RAG/embedding pipeline that multi-pod state has to keep consistent is **`open-webui-embeddings`**.
The single most important thing to internalize before going multi-pod: **issue #23733 (Socket.IO frame amplification) is the most likely cause of "we had to turn off multi-pod and websockets" in production on any release before v0.11.1** — it is fixed from v0.11.1 on, though the GitHub issue itself stayed closed won't-fix. The mitigation is one env var either way. Read `references/issue-23733.md` first.
## The big bug, in 60 seconds (#23733)
**What it does:** Open WebUI streams assistant responses via Socket.IO. By design, **every single SSE token causes the backend to re-serialize the entire accumulated assistant message and emit it as a new Socket.IO frame**. The frame contains the full message-so-far, not the delta.
**Why it was designed that way (maintainer's words):** *"Every Socket.IO frame carries the complete rendered content of the assistant message. […] If a WebSocket frame is dropped, the conne