Bypass passcode dialog [SDK 6.3.10] - 16KB page sizes support

Description
Possibility to bypass the passcode dialog when using joinMeetingWithParams(meetingNo, password, displayName) after upgrade sdk from 6.1.1.22760 to 6.3.10.27979 .

Which Android Meeting SDK version?
6.3.10.27979

Smartphone

  • Device: Xiomi POCO NFC
  • OS: Android 12SKQ1.211019.001

Request
We need your help to understand an unexpected behavior related to the migration from v6.1.1.22760 to v6.3.10.27979. The main goal of this migration is to comply with Google Play’s requirement to support 16KB memory page sizes, which will be enforced starting on November 1, 2025.

After applying v6.3.10.27979 and calling joinMeetingWithParams(meetingNo, password, displayName), the password dialog is shown to users (this does not happen with v6.1.1.22760).
For our use case, this behavior doesn’t make sense, since users are already logged into the app and receive a push notification that should allow them to join the meeting directly.

To Reproduce
Steps to reproduce the behavior

  1. The SDK is initialized (sending the jwtToken)
ZoomSDKInitParams initParams = new ZoomSDKInitParams();
initParams.jwtToken = jwtToken;
initParams.enableLog = true;
initParams.logSize = 5;
initParams.enableGenerateDump = true;
initParams.domain = WEB_DOMAIN;
initParams.videoRawDataMemoryMode = ZoomSDKRawDataMemoryMode.ZoomSDKRawDataMemoryModeStack;

try {
	Locale language = new Locale.Builder().setLanguageTag(languageLocale).build();
	mZoomSDK.setSdkLocale(cordova.getActivity().getApplicationContext(), language);
} catch (Exception ex) {
	mZoomSDK.setSdkLocale(cordova.getActivity().getApplicationContext(), Locale.US);
}

mZoomSDK.initialize(cordova.getContext(), this, initParams);
  1. The joinMeetingWithParams is used to allow the users to jump into the meeting. The fields meetingNo, password and displayName are sent, but the dialog requesting the password is shown (seems that is ignored), and is not possible to enter into the meeting without filling the field. This behavior doesn’t append with the old version v6.1.1.22760.
MeetingService meetingService = mZoomSDK.getMeetingService();
meetingService.addListener(this);

JoinMeetingParams params = new JoinMeetingParams();
params.displayName = displayName;
params.meetingNo = meetingNumber;
params.password = meetingPassword;

JoinMeetingOptions opts = new JoinMeetingOptions();
opts.no_audio = noAudio;
opts.no_video = noVideo;

int response = meetingService.joinMeetingWithParams(cordova.getActivity().getApplicationContext(), params, opts);

Screenshots

Troubleshooting Routes

We also tried using the handZoomWebUrl method, sending the join_url (https://us04web.zoom.us/j/{meetingNo}?pwd={encrypted_password}). However, the dialog still appears requesting the displayName, only after filling it in is it possible to join. I don’t have found any official documentation mention this field on the URL.

Finally, we also tried using the encrypted_password when invoking joinMeetingWithParams, but again the dialog appears, and after the user type the encrypted_password manually, it shows an error saying that the pwd is invalid.

Could you help identify the cause of this behavior? Have there been any changes to the SDK’s releases in this regard? Is it possible to work around it with some configuration?

Thank you in advance, and apologies for the lengthy explanation.

1 Like

This behavior is related to a change introduced in the Zoom Android Meeting SDK versions 6.3.x and above. Starting from SDK v6.3.0, the joinMeetingWithParams() method performs additional validation on meeting credentials — including the passcode and display name — as part of Zoom’s new security and compliance updates.

In earlier versions (like 6.1.1.22760), passing the password parameter was sufficient to bypass the dialog. However, in the latest SDK, the SDK-side UI validation now enforces a passcode prompt if:

  • The password value is not properly mapped to the expected parameter key (plain text vs encrypted).

  • The meeting requires a “display name” or passcode confirmation at runtime (even if provided programmatically).

  • The JWT initialization doesn’t include the full meeting authentication context.

Recommended Workarounds / Fixes:

  1. Use the JoinMeetingParam4WithoutLoginUser class (instead of JoinMeetingParams) to join meetings as a guest user with all credentials supplied programmatically.
JoinMeetingParam4WithoutLoginUser params = new JoinMeetingParam4WithoutLoginUser();
params.meetingNo = meetingNumber;
params.displayName = displayName;
params.password = meetingPassword; // plain passcode, not encrypted
meetingService.joinMeetingWithParams(context, params, opts);

  1. Ensure that meetingPassword is the plain passcode, not the encrypted value from the join URL (e.g., don’t use the pwd query parameter).
  2. If the dialog still appears, try calling meetingService.handZoomWebUrl() only with a valid join_url that contains both mn and pwd parameters. Avoid mixing both approaches in one flow.
  3. Double-check your JWT initialization, ensuring that the token is valid and generated using the latest SDK key/secret pair. Invalid or outdated JWTs can sometimes trigger fallback UI prompts.

According to Zoom’s latest SDK changelog, this dialog is a known behavior change to enhance consistency between Zoom clients and SDK apps. A direct bypass isn’t currently supported by default for joinMeetingWithParams, but using the JoinMeetingParam4WithoutLoginUser approach generally resolves it.

Hope this helps clarify the cause and provides a working solution!

Best regards,