You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Last year, a change was made to remove X-Chainlit-Session-Id and other extraHeaders from WebSocket connections (see PR: #1575). The intention was to move towards cookie-based session affinity, but no cookie is currently being set to maintain this affinity.
Impact
For Istio-managed Kubernetes clusters, sticky sessions are broken because:
Istio relies on consistent hashing (ConsistentHashLB) to provide session affinity. Docs
This requires either a header or a cookie to consistently route WebSocket requests to the same pod.
Without a header/cookie, subsequent WebSocket connections get randomly load-balanced, leading to session disruptions.
Expected Behavior
A session cookie (e.g., X-Chainlit-Session-Id) should be set if headers are removed.
This would allow Istio to hash on the cookie and properly maintain sticky sessions.
The text was updated successfully, but these errors were encountered:
That applies if you're relying on an external load balancer for sessions. However, in our EKS deployment, Istio manages internal traffic instead of the ALB handling sticky sessions.
This basically means with the removal of headers and no addition of a session cookie, Chainlit just simply won't work in multi-pod deployments.
Issue
Last year, a change was made to remove
X-Chainlit-Session-Id
and otherextraHeaders
from WebSocket connections (see PR: #1575). The intention was to move towards cookie-based session affinity, but no cookie is currently being set to maintain this affinity.Impact
For Istio-managed Kubernetes clusters, sticky sessions are broken because:
Expected Behavior
This would allow Istio to hash on the cookie and properly maintain sticky sessions.
The text was updated successfully, but these errors were encountered: