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
Bug:
When multiple connections are made to the websocket command
endpoint of the same device (e.g. when multiple browser tabs are open for
the same device), the UI does not receive updates from the websocket and
keeps showing a loader in the command output field, even when the command
has completed execution.
Fix:
The issue was caused by mutating the shared `event` dictionary in the
`send_update` method of `CommandConsumer`. Specifically, calling
`event.pop('type')` removed the `'type'` key from the event. Since the
same event object is dispatched to all consumer instances (one for each
websocket connection), removing `'type'` in one instance caused the others
to raise:
ValueError: Incoming message has no 'type' attribute
This broke message dispatch for the remaining connections. The fix is to
avoid modifying the original `event` dictionary.
This preserves the `'type'` key, ensuring all consumer instances
continue to receive well-formed events and function correctly.
0 commit comments