Webhook called 4 times in rapid succession

Using this template helps us debug your issues more effectively :slight_smile:

Description
When I start a meeting by clicking “host a meeting” then clicking “with video off” it triggers the meeting.created webhook called 4 times in rapid succession.

Error
I return a 204 and it stills calls it 4 times with about 2-3 millisecond delays. This causes rate limit issues when I call other zoom APIs in the webhook.

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

Which Endpoint/s?
The meeting.created webhook.

How To Reproduce (If applicable)
Steps to reproduce the behavior:

  1. When I start a meeting by clicking “host a meeting” then clicking “with video off” it triggers the meeting.created webhook called 4 times in rapid succession.
  2. See error

Screenshots (If applicable)
[2021-03-08 04:41:53,713] DEBUG in zoom_apis: zoom_schedule_meeting_api: meeting.created
10.0.0.2 - - [08/Mar/2021 04:41:53] “POST /zoom/webhook/meeting HTTP/1.1” 204 -
[2021-03-08 04:41:53,716] DEBUG in zoom_apis: zoom_schedule_meeting_api: meeting.created
10.0.0.2 - - [08/Mar/2021 04:41:53] “POST /zoom/webhook/meeting HTTP/1.1” 204 -
[2021-03-08 04:41:53,719] DEBUG in zoom_apis: zoom_schedule_meeting_api: meeting.created
10.0.0.2 - - [08/Mar/2021 04:41:53] “POST /zoom/webhook/meeting HTTP/1.1” 204 -
[2021-03-08 04:41:53,721] DEBUG in zoom_apis: zoom_schedule_meeting_api: meeting.created
10.0.0.2 - - [08/Mar/2021 04:41:53] “POST /zoom/webhook/meeting HTTP/1.1” 204 -

Additional context
Add any other context about the problem here.

Hey @chou ,

Thanks for reporting this issue to us! We are taking a look at it and will keep you updated. (ZOOM-253832) :slight_smile:

Can you also provide a screenshot of the “Host a meeting” button you are clicking on?

-Tommy

Screen Shot 2021-03-07 at 9.59.38 PM

But also happens with any meeting I start (even through the normal schedule a meeting flow)

Thanks @chou ,

This is what I thought, but wanted to confirm. :slight_smile:

After looking into the logs, we see many “INTERNAL SERVER ERROR” responses from your webhook endpoint url after we send the webhook. This can cause us to resend the webhooks.

Please double check your logs / system to see why this is occurring.

Thanks,
Tommy

Hey Tommy,

Thanks ya that is expected since in my webhook I am calling other zoom APIs which rate limit me so the first request succeeds and then the other three requests fail due to me being rate limited. Also the documentation says it should retry after 5 minutes, not 2 milliseconds.

This is also being called 4 times for the meeting.started webhook, but that’s not causing issues for me yet since it’s currently a no-op.

Hey @chou,

Thank you for the update. Looking at your account, I can see that you have installed the Production and Development version of both the “Bluebird” and “Bluebird Old” apps. Looking at these apps, we can see that they use the same Webhook Endpoint for Production and Development.

Because both versions of the apps are installed and both versions use the same endpoint, you will get 2 webhook events delivered from each app for a total of 4. From here, you may want to uninstall one of the apps or change the webhook endpoints so they are different for each app and each version.

Let me know if that makes sense. I hope that helps! :slightly_smiling_face:

Thanks,
Max

Hey @MaxM,

Wow that makes so much sense thanks for the help and sorry for the dumb question due to my misconfiguring. I’ll uninstall the “Old” app, but I have a followup question about what the best practice is with the dev vs prod endpoints.

Let me know if I should open a new ticket, but my question is:
Even if I separate the dev/prod endpoints then both endpoints will be called when a meeting is scheduled and there will be a race and one of them will crash when it tries to update some zoom settings since they’re both attached to the same zoom account. Is it best practice for zoom developers to have two zoom accounts (one for dev and one for prod)? Or what’s the best way to handle this?

Thanks,
Andrew

Hey @chou,

I’m glad that was helpful, no need to worry. Typically, you would only have one version of the app installed. You would only install the development version for testing in which case you would know to check the development endpoint.

With that said, you shouldn’t see any crashes on the Zoom side if you are making changes quickly based on the webhooks that you receive.

Instead of having two Zoom accounts, I would make sure that your endpoints operate on two different versions of your application - development and production. That means it’s a separate endpoint that makes changes to a different database.

In this way, your development version would only write to a development database when it is installed. This would separate the two even further and make testing simpler.

Let me know if that helps.

Thanks,
Max

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.