Can not join a meeting if already started another meeting before, even if the one started has been already ended

Description
We have implemented zoom meeting-sdk to our reactJS project. We have used component view in order to maintain the meetings. Users can either start or join a meeting flawlessly, however once a user starts a meeting (ZAK is sent thru the request param), there is a value named zsk in the request header. that’s just fine by now. the issue is that afterwards, the user cannot join any meeting unless the page is refreshed. The zsk value seems to be cached and it’s sent when trying to even join a meeting, which I believe it should not be. I tried clearing session and localstorage, but did not work.

Browser Console Error
Failed to join the meeting.

Which Web Meeting SDK version?
@zoomus/websdk”: “^2.4.5”

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Start a meeting (Passing ZAK as a host)
  2. Click on end meeting for all or leave the meeting
  3. Try to join another meeting

Device (please complete the following information):

  • Device: [Macbook Pro]
  • OS: [macOS 12]
  • Browser: [Chrome]
  • Browser Version [103.0.5060.114 (Official Build) (arm64)]

Hi @mahdiyar , thanks for reporting this, we’ll look into it. Understood on the cache storage, but can you confirm this is not a user that is a host user who is attempting to start a second concurrent meeting? This is for all participants, including non-hosts?

Hi @michael, thank you for your response. I am actually the one who is doing the integration of zoom to our application and in the I have a condition in the code in order to check if the user who has scheduled a meeting is the one who’s starting it. I have also verified the condition and I am sure that the user attempts to join another meeting and the zsk property is still in the request, the issue resolves by refreshing the page.

@mahdiyar understood, thank you for confirming. We’ll work to reproduce this and see if the zsk header behavior is intended or can be improved. We’ll get back to you shortly.

Thank you for the in-depth information so far, it’s much appreciated.

That’s much appreciated @michael.zoom . Looking forward to hearing back from you!

@mahdiyar,

Can you share a screenshot of the zsk value in the header?

Kindly find the zsk value in the payload in the screenshot below:

[Image Redacted]

Hey @donte.zoom, @michael.zoom ,

is there any update from your side? Thank you!

@mahdiyar ,

Thank you for the additional details. I’ve seen this edge case reported before but haven’t been able to reproduce with latest version of the SDK. Can you test with latest version (2.6.0) and report if the behavior persists?

Thank you very much @donte.zoom . Let me upgrade the SDK and get back to you. Have a nice day!

1 Like

Hi, This still happens in v2.6.0

Yes it actually does happen in the newest version also.

@mahdiyar , @roy.bensasson ,

Which exact SDK sample app are you testing with ? Please share the link.

Can I share it by email without other members in the forum seeing it?

Maybe this will direct you to the source of the issue:

When I check the ‘meetingSDKElement’ div before I start the first meeting it is empty (<div id="meetingSDKElement"></div>) and is being filled with zoom content when the meting starts.

When I check the div before starting the second meeting it contains another div inside (<div id="meetingSDKElement"><div></div></div>) and this never changes from that point on.

I tried to clear the meetingSDKElement div to be empty again (<div id="meetingSDKElement"></div>) but joining the meeting results in an error. I’m using it in a react-admin app, please check if this can result in detecting the wrong element if you are searching by classNames.
Thanks

I tried to clear the meetingSDKElement div to be empty again

that not a good idea - the whole event listeners, timer, intervall timer are running

there is a simple methode to clean all - leave the html page and jump to another

if you want to jump from one to another meeting use two identical html pages and switch between this two

performance should be no problem, because all zoom files are in the browser cache

Well, this is exactly what I don’t want to do. I want to keep working on the same single react app and just continue where I left off. I can just refresh the page and zoom will work, but this is not the desired solution.

you can use iframes for zoom

I enjoy the option of dragging it around and using the page behind it.

Zoom API developer assumes that after the zoom-meeting the html page is left, ‘leaveUrl’ is not optional

ZoomMtg.init({
    leaveUrl: 'http://www.zoom.us', //required

that’s probably why the reset function was simply left out - there are other important things to do