Race condition when meeting successively ended and deleted


#1

Hi there!

I’m trying to implement following scenario:

  1. Zoom meeting created by my server for specific host and meeting link sent to participants, participants should join meeting without host (“join before host” option enabled).
  2. After some time (~1 hour) all users should be kicked and not able to rejoin this session, host should be able to host other meetings.

So far, i implemented it in a following way:

  1. Server creates meeting by calling POST /v2/users/HOST_ID/meetings with following body:
{
	"start_time": "2019-01-08T15:00:00+03:00",  // or any other time
	"settings": {
		"join_before_host": true
	}
}
  1. After some time (~1h) server updates meeting status by calling PUT v2/meetings/:meetingId/status with following body:
{
	"action": "end"
}

which should kick users from meeting
3. Then server immediately calls DELETE v2/meetings/:meetingId, which should make meeting unjoinable.

Right now this scenario sometimes fails, because on the step 3 i receive status code 400 and error message saying that meeting is in in-progress state and can’t be deleted. For me it looks like some sort of race condition, is there any way to achieve desired scenario without timing hacks around step 3?


#2

Hi @anton

Our server takes a couple minutes to update the meeting from in-progress to end. Right now the workaround would be to wait a couple minutes before deleting the meeting.

Thanks