Good afternoon!
Description
I’ve upgraded the version of Zoom’s websdk we’re using from 2.6.0 > 2.12.2 to incorporate the changes for switching to using the SDK client id/secret. We’ve found with all users so far who have tested the newer version that they see the button disabled initially with the only optin to leave and rejoin until it works.
Has anyone seen anything like this? Or have thoughts as to where to check to diagnose?
Browser Console Error
This error seems to coincide with the scenarios where the button stays disabled:
TypeError: Cannot read properties of null (reading ‘videodecodethreadnumb’)
instrument.js:109 >>>>>>>>INIT JSMEDIASDK<<<<<<<<
instrument.js:109 Unhandled Promise rejection: Cannot read properties of null (reading 'videodecodethreadnumb') ; Zone: <root> ; Task: Promise.then ; Value: TypeError: Cannot read properties of null (reading 'videodecodethreadnumb')
at 1502_js_media.min.js:1:138245
at g (1502_js_media.min.js:1:172370)
at Generator._invoke (1502_js_media.min.js:1:172158)
at e.<computed> [as next] (1502_js_media.min.js:1:172549)
at i (1502_js_media.min.js:1:10083)
at s (1502_js_media.min.js:1:10281)
at 1502_js_media.min.js:1:10340
at new ZoneAwarePromise (polyfills.js:4542:29)
at new t (1502_js_media.min.js:1:1767)
at 1502_js_media.min.js:1:10228
at De (1502_js_media.min.js:1:137850)
at Object.<anonymous> (1502_js_media.min.js:1:101199)
at g (1502_js_media.min.js:1:172370)
at Generator._invoke (1502_js_media.min.js:1:172158)
at e.<computed> [as next] (1502_js_media.min.js:1:172549)
at i (1502_js_media.min.js:1:10083)
at s (1502_js_media.min.js:1:10281)
at _ZoneDelegate.invoke (polyfills.js:3487:26)
at Zone.run (polyfills.js:3249:43)
at polyfills.js:4390:36
at _ZoneDelegate.invokeTask (polyfills.js:3521:31)
at Zone.runTask (polyfills.js:3293:47)
at drainMicroTaskQueue (polyfills.js:3700:35)
at ZoneTask.invokeTask [as invoke] (polyfills.js:3606:21)
at invokeTask (polyfills.js:4763:18)
at globalCallback (polyfills.js:4794:29)
at WebSocket.globalZoneAwareCallback (polyfills.js:4827:16) TypeError: Cannot read properties of null (reading 'videodecodethreadnumb')
at http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:138245
at g (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172370)
at Generator._invoke (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172158)
at e.<computed> [as next] (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172549)
at i (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10083)
at s (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10281)
at http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10340
at new ZoneAwarePromise (http://localhost:4400/polyfills.js:4542:29)
at new t (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:1767)
at http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10228
at De (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:137850)
at Object.<anonymous> (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:101199)
at g (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172370)
at Generator._invoke (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172158)
at e.<computed> [as next] (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:172549)
at i (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10083)
at s (http://localhost:4400/node_modules/@zoomus/websdk/dist/lib/av/1502_js_media.min.js:1:10281)
at _ZoneDelegate.invoke (http://localhost:4400/polyfills.js:3487:26)
at Zone.run (http://localhost:4400/polyfills.js:3249:43)
at http://localhost:4400/polyfills.js:4390:36
at _ZoneDelegate.invokeTask (http://localhost:4400/polyfills.js:3521:31)
at Zone.runTask (http://localhost:4400/polyfills.js:3293:47)
at drainMicroTaskQueue (http://localhost:4400/polyfills.js:3700:35)
at ZoneTask.invokeTask [as invoke] (http://localhost:4400/polyfills.js:3606:21)
at invokeTask (http://localhost:4400/polyfills.js:4763:18)
at globalCallback (http://localhost:4400/polyfills.js:4794:29)
at WebSocket.globalZoneAwareCallback (http://localhost:4400/polyfills.js:4827:16)
(anonymous) @ vendor.js:9332
api.onUnhandledError @ polyfills.js:4176
handleUnhandledRejection @ polyfills.js:4201
api.microtaskDrainDone @ polyfills.js:4195
drainMicroTaskQueue @ polyfills.js:3707
invokeTask @ polyfills.js:3606
invokeTask @ polyfills.js:4763
globalCallback @ polyfills.js:4794
globalZoneAwareCallback @ polyfills.js:4827
instrument.js:109 Support video encode hardware acceleration: true
instrument.js:109 VP9?: true AMD?: false AMDdecodecheck: true enable720p?: true capacityfor720: true
1502_js_media.min.js:1 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'videodecodethreadnumb')
at 1502_js_media.min.js:1:138245
at g (1502_js_media.min.js:1:172370)
at Generator._invoke (1502_js_media.min.js:1:172158)
at e.<computed> [as next] (1502_js_media.min.js:1:172549)
at i (1502_js_media.min.js:1:10083)
at s (1502_js_media.min.js:1:10281)
at 1502_js_media.min.js:1:10340
at new ZoneAwarePromise (polyfills.js:4542:29)
at new t (1502_js_media.min.js:1:1767)
at 1502_js_media.min.js:1:10228
at De (1502_js_media.min.js:1:137850)
at Object.<anonymous> (1502_js_media.min.js:1:101199)
at g (1502_js_media.min.js:1:172370)
at Generator._invoke (1502_js_media.min.js:1:172158)
at e.<computed> [as next] (1502_js_media.min.js:1:172549)
at i (1502_js_media.min.js:1:10083)
at s (1502_js_media.min.js:1:10281)
at _ZoneDelegate.invoke (polyfills.js:3487:26)
at Zone.run (polyfills.js:3249:43)
at polyfills.js:4390:36
at _ZoneDelegate.invokeTask (polyfills.js:3521:31)
at Zone.runTask (polyfills.js:3293:47)
at drainMicroTaskQueue (polyfills.js:3700:35)
at ZoneTask.invokeTask [as invoke] (polyfills.js:3606:21)
at invokeTask (polyfills.js:4763:18)
at globalCallback (polyfills.js:4794:29)
at WebSocket.globalZoneAwareCallback (polyfills.js:4827:16)
(anonymous) @ 1502_js_media.min.js:1
g @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
e.<computed> @ 1502_js_media.min.js:1
i @ 1502_js_media.min.js:1
s @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
ZoneAwarePromise @ polyfills.js:4542
t @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
De @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
g @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
e.<computed> @ 1502_js_media.min.js:1
i @ 1502_js_media.min.js:1
s @ 1502_js_media.min.js:1
invoke @ polyfills.js:3487
run @ polyfills.js:3249
(anonymous) @ polyfills.js:4390
invokeTask @ polyfills.js:3521
runTask @ polyfills.js:3293
drainMicroTaskQueue @ polyfills.js:3700
invokeTask @ polyfills.js:3606
invokeTask @ polyfills.js:4763
globalCallback @ polyfills.js:4794
globalZoneAwareCallback @ polyfills.js:4827
Promise.then (async)
nativeScheduleMicroTask @ polyfills.js:3676
scheduleMicroTask @ polyfills.js:3687
scheduleTask @ polyfills.js:3511
scheduleTask @ polyfills.js:3336
scheduleMicroTask @ polyfills.js:3356
scheduleResolveOrReject @ polyfills.js:4380
resolvePromise @ polyfills.js:4317
(anonymous) @ polyfills.js:4233
Promise.then (async)
(anonymous) @ polyfills.js:4611
ZoneAwarePromise @ polyfills.js:4542
Ctor.then @ polyfills.js:4610
resolvePromise @ polyfills.js:4284
(anonymous) @ polyfills.js:4233
e.exports @ 1502_js_media.min.js:1
resolve @ 1502_js_media.min.js:1
i @ 1502_js_media.min.js:1
s @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
ZoneAwarePromise @ polyfills.js:4542
t @ 1502_js_media.min.js:1
(anonymous) @ 1502_js_media.min.js:1
W.IsSupportVideoDecodeHardwareAcceleration @ 1502_js_media.min.js:1
(anonymous) @ vendor.js:173498
value @ vendor.js:173574
value @ vendor.js:61082
commitLifeCycles @ vendor.js:332633
commitLayoutEffects @ vendor.js:335583
callCallback @ vendor.js:313090
sentryWrapped @ vendor.js:1064
invokeTask @ polyfills.js:3521
runTask @ polyfills.js:3293
invokeTask @ polyfills.js:3602
invokeTask @ polyfills.js:4763
globalCallback @ polyfills.js:4794
globalZoneAwareCallback @ polyfills.js:4827
invokeGuardedCallbackDev @ vendor.js:313139
invokeGuardedCallback @ vendor.js:313192
commitRootImpl @ vendor.js:335325
unstable_runWithPriority @ vendor.js:346560
runWithPriority$1 @ vendor.js:323994
commitRoot @ vendor.js:335167
finishSyncRender @ vendor.js:334584
performSyncWorkOnRoot @ vendor.js:334570
(anonymous) @ vendor.js:324048
unstable_runWithPriority @ vendor.js:346560
runWithPriority$1 @ vendor.js:323994
flushSyncCallbackQueueImpl @ vendor.js:324043
flushSyncCallbackQueue @ vendor.js:324031
batchedUpdates$1 @ vendor.js:334640
notify @ vendor.js:260378
n.notifyNestedSubs @ vendor.js:260363
n.handleChangeWrapper @ vendor.js:260365
dispatch @ vendor.js:340282
(anonymous) @ vendor.js:339754
dispatch @ vendor.js:339824
Qt @ vendor.js:56196
(anonymous) @ vendor.js:59909
(anonymous) @ vendor.js:339751
Wt @ vendor.js:181441
handleOnMessage @ vendor.js:181471
i.<computed>.i.<computed>.onmessage @ vendor.js:181509
wrapFn @ polyfills.js:3881
sentryWrapped @ vendor.js:1064
invokeTask @ polyfills.js:3521
runTask @ polyfills.js:3293
invokeTask @ polyfills.js:3602
invokeTask @ polyfills.js:4763
globalCallback @ polyfills.js:4794
globalZoneAwareCallback @ polyfills.js:4827
Which Web Meeting SDK version?
2.12.2 but I’ve also tried 2.10.0
Meeting SDK Code Snippets
The main code handling initiation of the SDK are here:
private startMeeting(): void {
ZoomMtg.preLoadWasm();
ZoomMtg.prepareWebSDK();
const root = document.getElementById('zmmtg-root');
if (root) {
root.style.display = 'block';
}
this.initialiseZoom();
}
private initialiseZoom(): void {
ZoomMtg.init({
debug: true,
leaveUrl: `${this.windowRef.location.origin}/login`,
success: (success: any) => {
this.logger.log(success);
ZoomMtg.join({
sdkKey: this.config.integrationKey,
meetingNumber: this.config.meetingNumber,
passWord: this.config.passWord,
signature: this.config.signature,
userEmail: this.config.userEmail,
userName: this.config.userName,
success: (s: any) => {
this.logger.log(s);
},
error: (error: any) => {
this.logger.log(JSON.stringify(error));
}
});
},
error: (error: any) => {
this.logger.log(JSON.stringify(error));
}
});
}
To Reproduce(If applicable)
Steps to reproduce the behavior:
- Join meeting
- On the preview, leave as default
- On joining, the Join Audio panel appears, the button is disabled
- Leave meeting, rejoin with steps 1 & 2 and the button is enabled (sometimes)
Alternatively
- Join meeting via above steps and if the button is enabled (and allow connecting sound sources)
- Get host to add breakout rooms
- Join a breakout room
- Audio panel appears with disabled button
Screenshots
Troubleshooting Routes
As the moment it’s consistently breaking when I change to a breakout room and inconsistently on joining
Device (please complete the following information):
- Device: Macbook Pro
- OS: 13.2.1
- Browser: Chrome
- Browser Version 113.0.5672.126
Additional context
Add any other context about the problem here.
At the moment I’m at a bit of a loss as to why this might be happening so any insight would be appreciated.