Timeout on join() - WASM loading issue?

Description

We sometime have clients who get timeout when performing the join operation on the web SDK to join a meeting.
The timeout is triggered from our application. It’s a customized maximum time setup on our application to perform the join operation. After that time if we have no reply from the join operation we consider there was a problem. Our current timeout value is 90 seconds.

Error

The timeout here is just a symptom (from my investigations and understanding of the Zoom Web SDK)
By monitoring client’s browser activity i could figure that for every failed attempts the WASM libraries are never loaded.

Resources & script are perform in the following order :

  • app start
  • js lib loaded + wasm lib loaded + js sdk prepared
  • zoom signature generated
  • zoom init() performed
  • zoom join() performed (not shown on the screenshot as it never returns)

image
image

But even if the wasm preload could be performed, it’s done asynchronously so we do not have the ability to verify if it’s correctly performed or not.

Here is a screenshot of resource load during a failed attempt:

Here is a screenshot (same client just few minutes after) of resource load during a successful attempt:

I remember that from version 1.7.8 or 1.7.9 (don’t remember which one exactly) you published a fix on the Web SDK to prevent the join operation to continue when WASM libraries are not fully loaded. (to prevent a race condition issue)

Assumption

So i’m currently wondering if this timeout could be the symptom that the join is just waiting for the WASM to be loaded. And if so, why WASM files are not loading for the few first attempts and then suddenly with no changes on client side they can be loaded.

Do you guys have an explanation why the wasm libraries do not load in such case ?

Which version?
1.7.10 and 1.8.0

To Reproduce(If applicable)
Not easy to reproduce as it depends on the context.

Additional informations

Yesterday and today several users got the following errors while downloading WASM libraries:

The next attempts (few seconds after the failed one, users just leave and login again into our application) were successful and users could join the meeting.

Multiple users got this same error at close times, which means probably a resource availability problem on the CDN.

Do you have insight / feedback about that ?

Pretty annoying and it started to happen more and more frequently since last week

Hey @nvivot,

Thanks for reporting this and providing the information in a great detail. Our Web SDK engineers are investigating the issue. I will get back to you once we find the issue. (CS-2321)

-Tommy

Hey @nvivot,

Could you provide a meetingUUID with this issue so we can look into this further?

Thanks,
Tommy

Sure

Here is a meeting where wasm libraries could not be loaded due to fetch error.
Many unsuccessful attempts and few successful ones for this same meeting from the same user (c_…)

date: Sept 15th starting at 9:15pm (Japan time)
zoom meeting id:

Hey @nvivot,

Thanks! We are taking a closer look at this issue and will provide you with an update.

-Tommy

1 Like

Hi @tommy,

Is there any update on this issue?

Regards,
Lara

Hey @lfrancia,

We should have an update for you soon! :slight_smile:

Thanks,
Tommy

1 Like

I don’t think anyone is using Zoom SDK in production. This is the biggest issue and it is not at all working. Web Assemblies (.WASM) files take some time to download inside the browser cache. There should be some additional methods which will guaranty that all .WASM files are in the browser cache so that should determine if JOIN() command can be executed.

@tommy tommy don’t close this thread before providing any answear.

Hey @yasasiitestprovider2,

We will keep you and this thread updated with the root cause of this issue. :slight_smile:

Thanks,
Tommy

1 Like

We have postponed our release 7 more days, we are desperately waiting for the solution. @tommy you are the author of this SDK, so you can solve this issue in a separate early build. You can just expose the timeout attribute for SDK consumer so that we will set a maximum timeout limit or you can just add a new method like “IsInitilized()” and we will check its status before issuing join() method, you people have done that in Xamarin SDK also. There is no other way to find out if all 4 .WASM files are downloaded to the browser cache. Basicall the issue is Join() tries to execute before all 4 .WASM files are avaliable at browser end.

@tommy If you need some testing help, i can provide that. I made this work in Angular, but my solution is not acceptable to our team. What i do is, i put a 75 seconds waiting timer in the ngOnInit() method, during that time all 4 .WASM files are available in the browser cache, so it works. But this 75 seconds wait is killing the purpose.

Hey @fayazvar.mobile,

We are increasing the timeout time. Your idea of exposing the timeout attribute in the Web SDK is a great idea, and I will pass this along to our team. :slight_smile:

Thanks,
Tommy

1 Like

@tommy

We also had to wrap zoom join() call with a timeout system to prevent any infinite (or very long) waiting scenario (which happen less and less but still can)
If this is integrated to the SDK we are also interested in as we could remove that logic from our code.

But keep in mind that this will not fix the original issue which is the static resources not being available.

Since we have no feedback from you on that point, we are completely moving to a local static resource solution by copying all WASM / JS / MP3 resources the SDK need from the NPM package to our docker image and then cache everything in between with our public provider service.

I don’t say Zoom is in cause here, but without feedback we had to choose another way to reduce the number of errors sources.

In case you find the original cause of this wasm file not being available, i’m interested in knowing :slight_smile:

1 Like

Hey @nvivot,

Yes, we are looking into the static resources issue. I will keep you updated on what we find. :slight_smile:

In the meantime, you have a solid work around!

Thanks,
Tommy

1 Like

Hi @tommy,

Is there any update on this issue?

Best Regards,
Fayaz

Hey @fayazvar.mobile, @lfranciam, @nvivot, @yasasiitestprovider2,

Yes, I do have an update for you. We are releasing a fix for this in version 1.8.2. Stay updated here:

Thanks,
Tommy

2 Likes

Hey @tommy

When will be 1.8.2 version available? We are waiting for the timeout option or any other workaround.

Thanks
Fayaz

Hey @fayazvar.mobile,

We will share a timeline here once available:

Thanks,
Tommy

1 Like