Getting error Please use host/alternative email to start the webinar

We are using Zoom’s Web SDK for both meetings and webinars. While users can seamlessly host meetings and participants can join them using the SDK, there’s a limitation. While participants can join webinars (using WebSDK) launched through the standard Zoom application, the host is not able to start webinar using WebSDK. The problem we’re facing is an error message “Please use host/alternative host to start the webinar” when attempting to host webinars directly through the Web SDK.

  1. Host meeting using WebSDK - Working
  2. Join meeting using WebSDK - Working
  3. Host webinar using WebSDK - Not Working
  4. Join webinar using WebSDK - Working

We tried using sample app GitHub - zoom/meetingsdk-javascript-sample: Use the Zoom Meeting SDK in (vanilla) JavaScript, which is also giving same error.

Error json:

{method: ‘join’, status: false, result: ‘Please use host/alternative host to start the webinar.’, errorCode: 3624, errorMessage: ‘Please use host/alternative email to start the webinar.’}

Hi @graphytech,

Please look at the documentation for starting a webinar with Web SDK. You will need to pass the host zak token in the join method.

Hi @jenzushsu , we are passing host zak token in the join method. Same code is working for hosting meeting but not for webinar.

@jenzushsu we’re using this code

ZoomMtg.preLoadWasm()
ZoomMtg.prepareWebSDK()

var authEndpoint = ‘’
var signature = ‘’
var sdkKey = ‘’
var meetingNumber = ‘’
var password = ‘’
var role = 1
var userName = ‘JavaScript’
var userEmail = ‘’
//var registrantToken = ‘’
var zakToken = ‘<zak_token>’
var leaveUrl = ‘https://zoom.us

function getSignature() {
fetch(authEndpoint, {
method: ‘POST’,
headers: {
‘Content-Type’: ‘application/json’
},
body: JSON.stringify({
meetingNumber: meetingNumber,
role: role
})
}).then((response) => {
return response.json()
}).then((data) => {
console.log(data)
startMeeting(data.signature)
}).catch((error) => {
console.log(error)
})
}

function startMeeting() {

document.getElementById(‘zmmtg-root’).style.display = ‘block’

ZoomMtg.init({
leaveUrl: leaveUrl,
patchJsMedia: true,
leaveOnPageUnload: true,
success: (success) => {
console.log(success)
ZoomMtg.join({
signature: signature,
sdkKey: sdkKey,
meetingNumber: meetingNumber,
passWord: passWord,
userName: userName,
userEmail: userEmail,
//tk: registrantToken,
zak: zakToken,
success: (success) => {
console.log(success)
},
error: (error) => {
console.log(error)
},
})
},
error: (error) => {
console.log(error)
}
})
}

@jenzushsu Can you please update about this issue?