We’re experiencing an issue with Zoom Video SDK (Web) where the screen share view does not correctly revert back to a previously active sharer when multiple users share sequentially.
Steps to Reproduce
- User A starts screen sharing — everything works correctly (A’s share visible).
- User B starts screen sharing — the view switches correctly to B’s share.
- User B stops sharing — the SDK triggers
peer-share-state-changewithaction: "Stop". - Expected: The view should automatically revert to User A’s still-active share.
- Actual: The view area becomes blank, even though
getAllUser()still reports User A as sharing.
Expected Behavior
After User B stops sharing, the Video SDK should automatically (or via a consistent event) allow the client to re-attach to the remaining active sharer (User A) without showing a blank view.
Actual Behavior
- The
peer-share-state-changeevent fires with{ userId: B, action: "Stop" }. zmClient.getAllUser()still shows User A assharing: true.- However, the rendered
streamobject for A’s share becomes invalid until the share is manually restarted or the client reconnects.
Environment
| Property | Value |
|---|---|
| SDK | Zoom Video SDK – Web |
| Version | (^2.2.12) |
| Browser | Chrome specific, works on firefox |
| OS | Ubuntu / macOS 13 |
| Framework | React (using functional hooks) |
| Reproduction Code Snippet | Provided below |
Code Snippet (Simplified)
useEffect(() => {
const handleUserShareStatus = ({ userId, action }) => {
console.log('[peer-share-state-change]', userId, action);
if (action === 'Stop') {
const sharers = zmClient.getAllUser()?.filter(u => u.sharing);
console.log('Still sharing users:', sharers);
}
};
zmClient.on('peer-share-state-change', handleUserShareStatus);
return () => zmClient.off('peer-share-state-change', handleUserShareStatus);
}, []);
Even though getAllUser() shows the previous sharer (A) as sharing, there’s no visual stream shown in the ShareView.
Questions / Clarification Needed
- Is there a reliable event or state update that fires when another user’s share remains active after someone else stops sharing?
- Do we need to manually call any
stream.subscribeShare(userId)or re-render logic after aStopevent? - Could this be a known issue in the current Web SDK version when switching between sequential sharers?