Error 101 when trying to Join Webinar

Meeting SDK - Android
Version 5.16.2.16555

Description
I have added Zoom Meeting SDK to my Android application, and I’m not using custom UI.
When users try to join a meeting, they receive the erroCode=101 using the following method:

int joinMeetingResult = meetingService.joinMeetingWithParams(reactContext, params, opts);

Error?
The above code returns 101.

Troubleshooting Routes
I have read all the topics at this forum about the errorCode 101, but they all seem related to autoLogin, but it is something that I’m not using at all.

How To Reproduce
I couldn’t reproduce it using the devices I have available
These are the code snippets regarding the Initialization and Join functions:

    public void init(String jwtToken, Promise promise) {
        Log.d(TAG, "Init Zoom: " + jwtToken);

        UiThreadUtil.runOnUiThread(() -> {
            try {
                initPromise = promise;

                ZoomSDK zoomSDK = ZoomSDK.getInstance();

                if (zoomSDK.isInitialized()) {
                    promise.resolve("Zoom initialized");
                    return;
                }

                ZoomSDKInitParams initParams = new ZoomSDKInitParams();
                initParams.jwtToken = jwtToken;
                initParams.enableGenerateDump = true;
                initParams.enableLog = true;
                initParams.domain = "zoom.us";
                zoomSDK.initialize(reactContext.getCurrentActivity(), ZoomManager.this, initParams);

            } catch (Exception e) {
                Log.e("ERR_UNEXPECTED_EXCEPTION", e.getMessage());
                promise.reject("ERR_UNEXPECTED_EXCEPTION", e);
            }
        });
    }

@Override
    public void onZoomSDKInitializeResult(int errorCode, int internalErrorCode) {
        Log.d(TAG, "Init Zoom Result with : errorCode " + errorCode +
                "and internalErrorCode: " + internalErrorCode);
        String errorInfo = getAuthErrorName(errorCode);
        sendEvent("AuthEvent", errorInfo);

        if (errorCode != ZoomError.ZOOM_ERROR_SUCCESS) {
            String errorFormatted = String.format("Error= %d (%s)", errorCode, errorInfo);
            initPromise.reject(
                    "ERR_ZOOM_INITIALIZATION",
                    errorFormatted + ", internalErrorCode=" + internalErrorCode
            );
        } else {
            registerListener();
            initPromise.resolve("Initialize Zoom SDK successfully.");
        }
        initPromise = null;

    }

private void registerListener() {
        Log.i(TAG, "registerListener");
        ZoomSDK zoomSDK = ZoomSDK.getInstance();
        MeetingService meetingService = zoomSDK.getMeetingService();
        if (meetingService != null) {
            Log.i(TAG, "registerListener, added listener for meetingService");
            meetingService.addListener(this);
        }
        InMeetingService inMeetingService = zoomSDK.getInMeetingService();
        if (inMeetingService != null) {
            Log.i(TAG, "registerListener, added listener for inMeetingService");
            inMeetingService.addListener(this);
        }
    }

public void join(String displayName, String emailAddress, String meetingNumber, String passcode, Promise promise) {
        Log.d(TAG, "join meeting with displayName: " + emailAddress + ", email: " + emailAddress + ", meetingNumber:" + meetingNumber);
        name = displayName;
        email = emailAddress;
        UiThreadUtil.runOnUiThread(() -> {
            ZoomSDK zoomSDK = ZoomSDK.getInstance();

            if (!zoomSDK.isInitialized()) {
                promise.reject("ERR_ZOOM_START", "ZoomSDK has not been initialized successfully");
                return;
            }

            MeetingService meetingService = zoomSDK.getMeetingService();
            if (meetingService == null) {
                promise.reject("ERR_ZOOM_START", "Zoom MeetingService has not been initialized successfully");
                return;
            }

            JoinMeetingOptions opts = new JoinMeetingOptions();
            JoinMeetingParams params = new JoinMeetingParams();

            opts.no_webinar_register_dialog = true;
            opts.no_record = true;
            opts.no_share = true;
            opts.no_titlebar = false;
            opts.custom_meeting_id = "MyWebinar";
            opts.meeting_views_options = MeetingViewsOptions.NO_TEXT_PASSWORD
                    + MeetingViewsOptions.NO_TEXT_MEETING_ID
                    + MeetingViewsOptions.NO_BUTTON_PARTICIPANTS;

            params.displayName = displayName;
            params.meetingNo = meetingNumber;
            if (passcode != null && passcode.length() > 0) {
                params.password = passcode;
            }

            meetingPromise = promise;
            try {
                int joinMeetingResult = meetingService.joinMeetingWithParams(reactContext, params, opts);
                Log.i(TAG, "Join meeting, joinMeetingResult: " + joinMeetingResult);
                if (joinMeetingResult != MeetingError.MEETING_ERROR_SUCCESS) {
                    Log.i(TAG, "Join meeting failed, clearing meetingPromise");
                    meetingPromise.reject("ERR_ZOOM_JOIN:" + joinMeetingResult + "/" + getMeetErrorName(joinMeetingResult), "joinMeeting, errorCode=" + joinMeetingResult);
                    meetingPromise = null;
                }
            } catch (Exception e) {
                promise.reject("ERR_UNEXPECTED_EXCEPTION", e);
                Log.i(TAG, "Join meeting failed with exception, clearing meetingPromise");
                meetingPromise = null;
            }
        });
    }

Any help is appreciated.
I’m running this app in production, and this issue is causing many problems.

Thank you.

I managed to get some Zoom SDK logs from the failed devices, but they are encrypted.

How can I get some support to resolve this issue?

Can someone help me with this problem?

Thank you.