Marketplace app approved for beta testing but still unable to start/join external meetings

Meeting SDK Type and Version
Android Meeting SDK v7.1.0.41100

Description

We’re building an app that lets users sign into their Zoom account, fetch upcoming meetings, and join/start them (including instant meetings and PMI meetings), plus view contacts and profile info. Authentication uses the Device Authorization Grant (device code flow) against Zoom’s REST APIs. Actual meeting join/start goes through the Zoom Meeting SDK for Android.

Before beta approval

  • Only the account that owns the app in the Marketplace (i.e., the account I’m posting from) could sign in via our device code flow. Any other account (regular personal Gmail accounts) couldn’t sign in at all.
  • When the owner account tried to join a meeting it was invited to (i.e., a meeting it didn’t create), we got MEETING_STATUS_FAILED, 63, 6601, which we believed was a cross-account join policy restriction.
  • We assumed both issues were tied to the app not being verified, so we applied for beta testing.

After beta approval

The app was approved for beta testing yesterday. This fixed the sign-in restriction — any account can now sign in via our device code flow. However, the Meeting SDK behavior did not improve:

  • Owner account: can start its own meetings without issue, but still gets MEETING_STATUS_FAILED, 63, 6601 when joining a meeting it was only invited to (not its own).
  • Other accounts (tested with two separate personal Gmail accounts): can sign in fine now, but get MEETING_STATUS_FAILED, 63, 6601 for everything — they can’t even start their own meetings, let alone join someone else’s.

So sign-in is no longer restricted, but SDK-level join/start still is, and it’s worse for non-owner accounts than for the owner account.

Code

This is how we start/join:

kotlin

private suspend fun onStartOrJoinMeetingInternal(meeting: UpcomingMeeting) {
    logV("onStartOrJoinMeeting: isHost -> ${meeting.isHost}")

    val zoomSDK = getZoomSDK().also { it.meetingService.addListener(this@HomeViewModel) }
    val userZakTemp = getZAK()

    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()
        )
    }

We pass the ZAK of the currently signed-in user in all cases.

Error

MEETING_STATUS_FAILED, 63, 6601

  • Owner account: only when joining meetings it didn’t create.
  • Other accounts: on every start/join attempt, own or external.

Troubleshooting so far

We expected beta approval to resolve this, since it did resolve the device-flow sign-in restriction — but the 63/6601 error persists. We’ve reproduced the issue across three accounts total: the app-owning account and two separate personal Gmail accounts.

We confirm that the client id and client secret that are used to generate the JWT token for the Meeting SDK are production credentials from the marketplace.

@androiddev123 can you capture the SDK log, I’ll PM you for the link