Join_before host is not working if use_pmi: false

i’m trying to create the meeting with use_pmi as false in lower environments.If i try to join the meeting it is showing me that host needs to start the meeting but in create response join_before host is true.If use_pmi as true i’m able to join meeting directly.I have checked account level ,Group level settings join_before host is true and it is locked but still i’m unable to join until host starts the meeting.

Error
Please wait for the host to start this meeting

Which App Type (OAuth / Chatbot / JWT / Webhook)?
Jwt

How To Reproduce (If applicable)
Request for create Meeting :
{
“topic”: “Test Link”,
“type”: 2,
“start_time”: “2020-07-08T01:00:00Z”,
“settings”: {
“use_pmi”: false
}
}
Response for Create Meeting:
“host_video”: true,
“in_meeting”: false,
“join_before_host”: true

Group level and Account level settings :
“schedule_meeting”: {
“host_video”: true,
“participant_video”: true,
“audio_type”: “both”,
“join_before_host”: true,
“personal_meeting”: true,
“use_pmi_for_schedule_meetings”: false,
“use_pmi_for_instant_meetings”: false,
“force_pmi_jbh_password”: true,
“require_password_for_scheduling_new_meetings”: true,
“require_password_for_scheduled_meetings”: false,
“require_password_for_instant_meetings”: false,
“require_password_for_pmi_meetings”: “all”,
“pstn_password_protected”: true,
“mute_upon_entry”: true,
“upcoming_meeting_reminder”: true,
“embed_password_in_join_link”: true
},

Additional context

    • How it is allowing if use_pmi is true?
    • Do i need to do any additional settings if use_pmi value is false

Hey @shanthi,

Do you have the full JSON response? If so, can you share it so I can debug the issue?

Thanks,
Tommy

Hi @tommy

Below is the create meeting response
{
“created_at”: “2020-07-11T15:31:55Z”,
“duration”: 60,
“encrypted_password”: “XXXXXXXXXXXXXXX”,
“h323_password”: “XXXXXXX”,
“host_id”: “XXXXXXXXXXXXXXX”,
“id”: XXXXXXXXXXXXXXX,
“join_url”: “https://XXXXXXXXXXXXXXX.zoom.us/j/XXXXXXXXXXXXXXX?pwd=XXXXXXXXXXXXXXX”,
“password”: “XXXXXXX”,
“pstn_password”: “XXXXXXX”,
“settings”: {
“alternative_hosts”: “”,
“approval_type”: 2,
“audio”: “both”,
“auto_recording”: “none”,
“close_registration”: false,
“cn_meeting”: false,
“enforce_login”: false,
“enforce_login_domains”: “”,
“global_dial_in_countries”: [
“US”
],
“global_dial_in_numbers”: [
{
“city”: “New York”,
“country”: “US”,
“country_name”: “US”,
“number”: “+1 XXXXXXXXXXXXXXX”,
“type”: “toll”
},
{
“city”: “San Jose”,
“country”: “US”,
“country_name”: “US”,
“number”: “+1 XXXXXXXXXXXXXXX”,
“type”: “toll”
}
],
“host_video”: true,
“in_meeting”: false,
“join_before_host”: true,
“meeting_authentication”: false,
“mute_upon_entry”: true,
“participant_video”: true,
“registrants_confirmation_email”: true,
“registrants_email_notification”: true,
“use_pmi”: false,
“waiting_room”: true,
“watermark”: false
},
“start_time”: “2020-07-14T01:00:00Z”,
“start_url”: “https://XXXXXXXXXXXXXXX.zoom.us/s/XXXXXXXXXXXXXXX?zak=XXXXXXXXXXXXXXX”,
“status”: “waiting”,
“timezone”: “America/Los_Angeles”,
“topic”: “Test Link”,
“type”: 2,
“uuid”: “XXXXXXXXXXXXXXX”
}

Hello @tommy
Due to waiting room settings it displayed host needs to start the meeting,so this issue is resolved.But still i have a doubt why i’m able to join the meeting if use_pmi is true, waiting room is enabled,
choose which participants to place in the waiting room:Everyone.

Hey @shanthi,

Are you starting the meeting as a host? Or trying to join via the join_url?

Thanks,
Tommy

Hey @tommy ,

facing the issue of “Waiting for host to start the meeting”.
Steps followed

  1. Created the meeting using API
    Request :
    {
    “topic”: “Daily Standup Meeting”,
    “type”: “2”,
    “start_time”: “2020-11-26T11:00:00”,
    “duration”: “60”,
    “timezone”: “UTC”,
    “settings”: {
    “use_pmi”: “false”,
    “waiting_room”: “false”,
    “join_before_host”: “true”
    }
    }
  2. With settings, Allow participants join before host-true and Waiting room-false

But when participants are trying to join

  • Using meeting id, then it is giving error as “Waiting for the host to start the meeting”
  • When trying to join using the complete meeting URL over web browser it allows to join

Hey @nitin.kulkarni,

Can you share the full request (URL and its response) with me here? I’m happy to take a closer look.

Thanks,
Will

I also tried creating a meeting with “join_before_host” set to true, yet, I’m still getting the “Waiting for host to start this meeting” prompt when a user joins before the host. Below is my request code in JS.

          request
        .post(
          {
            url: `https://api.zoom.us/v2/users/${body.id}/meetings`,
            json: true,
            body: {
              type: 1,
              settings: {
                approval_type: 2,
                host_video: true,
                participant_video: true,
                join_before_host: true,
              },
            },
          },
          (error, response, body) => {
            console.log("error, response, body", error, body);
          }
        )
        .auth(null, null, true, access_token);

I also tried this body to no avail.

body: {
                  type: 1,
                  settings: {
                    join_before_host: true,
                  },
                },

Hey @connect1,

Thank you for reaching out to the Zoom Developer Forum. Please confirm that the Waiting Room setting is disabled for the meeting. This can be done either through the Zoom Portal or the Create a Meeting API. As we can see in the images below, having the Waiting Room enabled will override the Join Before Host setting.

image

image

I hope that helps! Let me know if you have any questions.

Thanks,
Max

@MaxM Yes, I’ve tried that. as well. Below is a portion of my request/response:

Request

                        approval_type: 2,
                        host_video: true,
                        participant_video: true,
                        join_before_host: true,
                        waiting_room: false,

Response

settings: {
host_video: false,
participant_video: false,
cn_meeting: false,
in_meeting: false,
join_before_host: false,
jbh_time: 0,
mute_upon_entry: false,
watermark: false,
use_pmi: false,
approval_type: 2,
audio: ‘voip’,
auto_recording: ‘none’,
enforce_login: false,
enforce_login_domains: ‘’,
alternative_hosts: ‘’,
close_registration: false,
show_share_button: false,
allow_multiple_devices: false,
registrants_confirmation_email: true,
waiting_room: false,
request_permission_to_unmute_participants: false,
registrants_email_notification: true,
meeting_authentication: false,
encryption_type: ‘enhanced_encryption’,
approved_or_denied_countries_or_regions: { enable: false }
}

Waiting_room in the response is false, but join_before_host is false as well even though the request body includes. join_before_host. set to true.

Hey @connect1,

Thank you for providing additional information. I just want to clarify that the request portion you sent is part of a settings object. Is that correct? Would you be able to provide the entire request that you’re using?

Thanks,
Max