Join Before Host Time and Waiting Room Not Matching Request Body Values When Creating a Meeting

I am using the create meeting api with the following body (email removed, but valid). In the settings is JBH time of 5 and waiting_room false, However when the meeting is created the JBh time is 0 and the waiting room is true. I hope someone can help me decode the request body and the response to figure out the discrepancy.

{
  "agenda": "Leadership Team Meeting on 12/19/2022",
  "default_password": false,
  "duration": 90,
  "type": 2,
  "pre_schedule": false,
  "settings": {
    "auto_recording": "cloud",
    "email_notification": true,
    "encryption_type": "enhanced_encryption",
    "global_dial_in_countries": [
      "US"
    ],
    "host_video": false,
    **"jbh_time": 5,**
    **"waiting_room": false,**
    "join_before_host": true,
    "meeting_authentication": false,
    "meeting_invitees": [
      {
        "email": "valid Email"
      }
    ],
    "mute_upon_entry": false,
    "participant_video": false,
    "private_meeting": false,
    "show_share_button": false,
    "use_pmi": false
  },
  "start_time": "2022-12-19T19:00:00",
  "topic": "Leadership Team Meeting on 12/19/2022",
  "timezone": "America/New_York"
}

Created Meeting Response

{
  "uuid": "Removed",
  "id": Removed,
  "host_id": "Removed",
  "host_email": "Removed",
  "topic": "Leadership Team Meeting on 12/19/2022",
  "type": 2,
  "status": "waiting",
  "start_time": "2022-12-20T00:00:00Z",
  "duration": 90,
  "timezone": "America/New_York",
  "agenda": "Leadership Team Meeting on 12/19/2022",
  "created_at": "2022-12-16T17:14:08Z",
  "start_url": "Removed",
  "join_url": "Removed",
  "settings": {
    "host_video": false,
    "participant_video": false,
    "cn_meeting": false,
    "in_meeting": false,
    "join_before_host": true,
    **"jbh_time": 0,**
    "mute_upon_entry": false,
    "watermark": false,
    "use_pmi": false,
    "approval_type": 2,
    "audio": "both",
    "auto_recording": "cloud",
    "enforce_login": false,
    "enforce_login_domains": "",
    "alternative_hosts": "",
    "alternative_host_update_polls": false,
    "close_registration": false,
    "show_share_button": false,
    "allow_multiple_devices": false,
    "registrants_confirmation_email": true,
    **"waiting_room": true,**
    "request_permission_to_unmute_participants": false,
    "global_dial_in_countries": [
      "US"
    ],
    "global_dial_in_numbers": [
      {
        "country_name": "US",
        "number": "+1 3052241968",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 3092053325",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "Chicago",
        "number": "+1 3126266799",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "New York",
        "number": "+1 6465588656",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 6469313860",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "Washington DC",
        "number": "+1 3017158592",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 7193594580",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 2532050468",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "Tacoma",
        "number": "+1 2532158782",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "Houston",
        "number": "+1 3462487799",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 3602095623",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 3863475053",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 5074734847",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 5642172000",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 6694449171",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "city": "San Jose",
        "number": "+1 6699009128",
        "type": "toll",
        "country": "US"
      },
      {
        "country_name": "US",
        "number": "+1 6892781000",
        "type": "toll",
        "country": "US"
      }
    ],
    "registrants_email_notification": true,
    "meeting_authentication": false,
    "encryption_type": "enhanced_encryption",
    "approved_or_denied_countries_or_regions": {
      "enable": false
    },
    "breakout_room": {
      "enable": false
    },
    "alternative_hosts_email_notification": true,
    "device_testing": false,
    "focus_mode": false,
    "enable_dedicated_group_chat": false,
    "private_meeting": false,
    "email_notification": true,
    "host_save_video_order": false
  },
  "pre_schedule": false
}

Hi @berwynumc ,

can you check if the following setting is enabled on your user level / account level in zoom.us account:

The setting can be found here: Sign In - Zoom

I just ran into a similar/same issue and am having trouble understanding why the API would allow for us to set waiting_room: false and join_before_host: true only to be ignored based on user level settings?

It seems to me that user level settings should be more like defaults, or applicable mainly to the Zoom web interface, while the meeting-level settings via the API should take precedence. Otherwise, I’m not sure what the point of the settings being offered through the API are for.