Bug Report: Black screen when overwriting screen share (Error 6205)

Bug Report: Black screen when overwriting screen share (Error 6205)

Environment

  • Zoom Web SDK Version: v2.2.12
  • Browser: Microsoft Edge v144
  • OS: Windows 11
  • Error code: 6205 (from browser console)

Pre-conditions

  • At least 1 Host and 2 Guest users join the same meeting.
  • All users have permission to share screen.
  • Security policy does not allow sharing Meeting ID or source code.

Steps to reproduce

  1. User1 starts screen sharing.
    → User2 and User3 can see User1’s shared screen normally.

  2. User2 starts screen sharing without stopping User1’s share (overwrite sharing).
    → User1’s share stops automatically.
    → User1 and User3 can see User2’s share.

  3. User3 starts screen sharing without stopping User2’s share (overwrite sharing).
    → User2’s share stops automatically.
    → User1 and User2 can see User3’s share.

  4. User3 stops screen sharing.

  5. User3 starts screen sharing again.


Actual Result

  • User2 sees a black screen while screen sharing is active.
  • Console log shows:e rrorCode: 6205
  • Screen content is not rendered.

Expected Result

All participants should be able to view the shared screen/tab correctly after screen sharing is overwritten by another user.


Frequency

  • 100% reproducible with the above steps.

Notes

  • Issue occurs only when screen sharing is overwritten by another participant without manually stopping the previous share.
  • Meeting ID and source code cannot be provided due to security restrictions.
  • SDK logs can be provided if required.

Hey @Thong1

Thanks for your feedback.

errorCode: 6205

Can you share which method threw the 6205 error? Also, what was the reason when this error occurred? Additionally, our sample app provides code to handle the related case — could you refer to this implementation?

Thanks
Vic

Hello Zoom Support Team,

Regarding this issue, we would like to report and confirm a screen sharing problem that occurred after upgrading the Zoom Video SDK from v2.2.5 to v2.2.12.

After the upgrade, we found an issue related to screen sharing behavior in meetings with multiple participants. We downgraded back to v2.2.5 and confirmed that the issue no longer occurs there.

1. Issue summary

After upgrading from 2.2.5 to 2.2.12, when multiple participants share their screens one after another without the previous sharer manually stopping sharing first, a participant may see a blank shared screen instead of the currently shared content.

2. Pre-conditions

  • A meeting with multiple participants

  • Minimum:

    • 1 host
    • 2 guest users
  • In our reproduction scenario, we used 3 participants:

    • user1
    • user2
    • user3

3. Steps to reproduce

  1. user1, user2, and user3 join the meeting.

  2. user1 starts screen sharing.

    • user2 and user3 can both see user1’s shared screen correctly.
  3. user2 starts screen sharing without user1 manually stopping sharing first.

    • user1’s sharing is stopped automatically.
    • user1 and user3 can both see user2’s shared screen correctly.
  4. user3 starts screen sharing without user2 manually stopping sharing first.

    • user2’s sharing is stopped automatically.
    • user1 and user2 can both see user3’s shared screen correctly.
  5. user3 stops screen sharing.

  6. user3 starts screen sharing again.

    • user1 can see user3’s shared screen correctly.
    • user2 sees only a blank screen.

4. Actual result

After user3 starts sharing again, user2 sees a blank shared screen.

5. Expected result

All participants, including guest users, should see the currently shared screen correctly.

6. Verification result

We downgraded the SDK from 2.2.12 back to 2.2.5 and confirmed that this issue does not occur in 2.2.5.

Because of this, we suspect the issue is related to changes introduced between 2.2.5 and 2.2.12 (possibly starting from 2.2.10).

7. Our investigation

After reviewing the SDK package code, we suspect the issue may be caused by a logic change in stopShareView() introduced in 2.2.10 and still present in 2.2.12.

Behavior in SDK 2.2.5

In 2.2.5, stopShareView() appears to always reset isReceiveSharing = false regardless of any other state.

Conceptually, it behaves like this:

stopShareView() {
    if (!isReceiveSharing) return Promise.resolve("");

    mediaAgent.stopRenderSharing();
    rwgAgent.unsubscribeSharing(activeNodeId, isFromMainSession);
    dispatch(setIsReceiveSharing(false));
    return Promise.resolve("");
}

Behavior in SDK 2.2.12

In 2.2.12, stopShareView() appears to use shareViewAttachments and activeNodeId for cleanup, and isReceiveSharing is reset only when all attachments become empty.

Conceptually, it behaves like this:

stopShareView() {
    if (!isReceiveSharing) return Promise.resolve("");

    const dummyElements = shareViewAttachments[activeNodeId]?.filter(e => e.isDummy) || [];
    if (dummyElements.length > 0) {
        dispatch(removeShareViewAttachment({ userId: activeNodeId, element: dummyElements }));
    }

    mediaAgent.stopRenderSharing();
    rwgAgent.unsubscribeSharing(activeNodeId, isFromMainSession);

    const updated = getState().share.shareViewAttachments;
    if (Object.entries(updated).every(([, arr]) => arr.length === 0)) {
        dispatch(setIsReceiveSharing(false));
    }

    return Promise.resolve("");
}

Suspected root cause

Our current assumption is:

  • stopShareView() now depends on activeNodeId to clean up shareViewAttachments
  • if activeNodeId has already been reset or changed unexpectedly, then shareViewAttachments[activeNodeId] may be undefined
  • cleanup does not complete correctly
  • isReceiveSharing may remain stuck as true
  • as a result, the next sharing session may not be rendered correctly for some participants, causing a blank screen

8. Important note about source code review

The SDK source downloaded from npm appears to be obfuscated, so actual variable and function names in the package are minified/obfuscated. Our analysis above is based on reverse investigation/mapping of the package logic, not on readable original source code.

9. Our proposed workaround / fix

Our current workaround is to call:

  • stopShareView() before
  • startShareView()

The intention is to ensure that the previous share receiving state is fully cleaned up before starting a new share view.

10. Our impact assessment of this workaround

At the moment, we believe this workaround is safe because stopShareView() in SDK 2.2.12 appears to have a safe early return:

if (!isReceiveSharing) return Promise.resolve("");

So our understanding is:

  • if cleanup has already completed successfully and isReceiveSharing = false, then calling stopShareView() again should do nothing
  • if cleanup did not complete successfully and isReceiveSharing = true, then calling stopShareView() first should help remove stale state and reset the sharing state before startShareView()

11. Questions for Zoom

Could you please help confirm the following:

  1. Is our suspected root cause correct?

    • Specifically, is this issue related to the logic change in stopShareView() and the handling of shareViewAttachments, activeNodeId, and isReceiveSharing introduced after 2.2.5?
  2. Is calling stopShareView() before startShareView() the correct workaround?

    • Or is there any risk or side effect we should be aware of?
  3. Is there an official or recommended fix from Zoom for this issue?

  4. Are there any required code changes or best practices that developers should follow when upgrading from Video SDK 2.2.5 to 2.2.12, especially for screen sharing flows?

  5. Has Zoom identified any known issues related to screen sharing state cleanup in versions 2.2.10 to 2.2.12?

We would appreciate your confirmation and any official guidance you can provide.

Thank you.

Best regards,

Thong

Hi @Thong1

Thank you for providing the detailed analysis.

This is indeed an issue we introduced in Video SDK 2.2.10, and we will fix it in an upcoming release(v2.4.0). The workaround you mentioned—calling stopShareView() before startShareView()—is a reasonable approach.

Thanks
Vic

1 Like

Hi @vic.yang,

Thank you for confirming that this issue will be fixed in the upcoming v2.4.0 release.

In the meantime, could you please let us know if there is any way to completely resolve the black screen issue during screen sharing while using the current SDK version (2.2.12)?

We want to ensure the best possible user experience while waiting for the update.

Thank you again for your support.

Best regards,
Thong

Hi @Thong1

could you please let us know if there is any way to completely resolve the black screen issue during screen sharing while using the current SDK version (2.2.12)?

After further evaluating this issue, we found that calling stopShareView does not fully resolve it. The issue is caused by an internal state not being completely cleaned up when switching from the viewer role to the presenter role in the Video SDK Web.

We have already fixed this issue, but the fix will only be included in an upcoming release, which is scheduled for early April.

Thanks
Vic

1 Like