How to force meeting to end when using join before host and there is no host

I am trying to use the zoom api to manage a conference. Have 100s of scheduled meetings and want to use “join before host” since the host may get delayed and may never show or leave early. (You know the absent minded professors …)
I planned to just share the join link and things work fine if everyone follows the schedule, but if even 1 of the 100s of users does not leave I cannot end the meeting. I tried the code below, end does nothing and delete get 3002. (so more problems with absent minded folks). This is true even if I start during the “scheduled time” and end during or after it. This behavior keeps me from starting the next session. Search here and google did not find any solutions (though the issue was raised years ago). Older messages suggested the delete the meeting which is why I tied that.

Error
“code”:3002,“message”:“Sorry, you cannot delete this meeting since it’s in progress.”}’

Which App Type (OAuth / Chatbot / JWT / Webhook)?
JWT based on the python zoomus package.

I can create. update just fine and I can delete items that are not in progress but the fact that scheduled meetings do end and I cannot force them do when scheduled is a major issue for our use. It seems to me it has to be doable since zoom rooms do it. Am I missing something?

Here is the core code,

for user in users:
    user_id = json.loads(client.user.get(id=user).content).get("id")
    meetings = json.loads(client.meeting.list(user_id=user_id).content).get("meetings")
    for meeting in meetings:
        print("Ending for "+user+" meeting " + str(meeting.get('id')));            
        result = client.meeting.delete(id=meeting.get('id'))            
        print("Deleting for "+user+" meeting " + str(meeting.get('id')));
        result = client.meeting.delete(id=meeting.get('id'))
        print( "result="+str(result.content))

Any creative solutions would be appreciated. I’d really hate to give up on zoom (given what we’ve invested) and switch to rocket chat but I’ve spend a day on this with no work around. I’ve tried ideas like using the host PMI but those did not seem to honor join-before-host.

Hey @tboult, happy to help!

Have you tried using the Update Meeting Status endpoint to end the meeting? I did not see you mention this or see it in your code.

Let me know!

Thanks,
Tommy