Description:
We have a Zoom Marketplace app (beta approved, up to 100 external users) using Device
Authorization Grant for sign-in and the Meeting SDK for start/join. We’re
seeing three related issues. Relevant code below.
-
GET /users/{userId}/upcoming_meetings returns 200 with an empty body
for some signed-in accounts, even though those accounts have both
self-scheduled and invited meetings. Other accounts return full results.
(the “all or nothing” pattern across accounts seemed worth confirming.) -
Starting the account’s OWN meeting fails for some accounts with
errorCode 63 / internalErrorCode 6601, while it works fine for others,
despite a valid ZAK being fetched successfully in all cases. -
Joining EXTERNAL meetings (hosted by another account) fails the same
way (63 / 6601) for most accounts, again despite valid ZAK — UNLESS we
fall back to a password + display-name guest join, which succeeds
regardless of which account hosts the meeting.
Relevant code (start/join flow, both paths use ZAK via the
“WithoutLogin” params APIs):
private suspend fun onStartOrJoinMeetingInternal(meeting: UpcomingMeeting) {
logV("onStartOrJoinMeeting: isHost -> ${meeting.isHost}")
val zoomSDK = getZoomSDK().also { it.meetingService.addListener(this@HomeViewModel) }
val userZakTemp = getZAK() // returns the currently signed in user's ZAK
val result = if (meeting.isHost) {
val params = getStartMeetingParamsWithoutLogin(userZakTemp, meeting.id.toString())
zoomSDK.meetingService.startMeetingWithParams(
context, params, zoomSettingsRepository.getSessionSettings().toStartMeetingOptions()
)
} else {
val params = getJoinMeetingParam4WithoutLogin(userZakTemp, meeting.id.toString())
zoomSDK.meetingService.joinMeetingWithParams(
context, params, zoomSettingsRepository.getSessionSettings().toJoinMeetingOptions()
)
}
logV("Meeting Start/Join Result $result")
if (result != MeetingError.MEETING_ERROR_SUCCESS)
throw AppException.UiException("Failed to start/join meeting")
}