Random Participant Joined & Left Webhook events

API Endpoint(s) and/or Zoom API Event(s)

“meeting.participant_joined” and “meeting.participant_left” webhooks:
(sorry, can’t link - there’s a limit to how many I can share because I’m a new user)

We seem to be getting these webhooks at random. I will join a meeting, another account will join, and when I end the meeting for all, there will be random join and leave webhooks firing for this meeting for about 2-3 minutes after.

I assumed the issue was with our endpoint not responding with a 200 status quickly enough but I no longer think that’s the problem.

It doesn’t seem to be possible to “deduplicate” the webhooks (see here: Meeting Participant Join / Left events and multiple deliveries - #10 by will.zoom)

I see someone else had similar issues here: Participants - webhook (participant joined and participant left)

Details on your question, workflow or the problem you’re trying to solve.

There are no errors. Webhooks are being received.

How To Reproduce
Steps to reproduce the behavior:

  1. Set up webhook handling for zoom at url: stage.portal-beta.tutored.live/api/zoom for our Oauth app
  2. Join / leave zoom meetings and see that webhooks don’t add up

I would be happy to provide more specifics. Here is the x-zm-trackingid (which according to the docs is unique per request but doesn’t seem to be…) v=2.0;clid=us06;rid=EventService_42eead657a9d41919181e401db841483

Hi @tbt_zoom ,

This is bizarre and I am not familiar with this behavior. Try removing those webhooks, saving the configuration, and then adding them back.

If it occurs again, we can escalate for a further look. Please follow up with me.


Thanks. If it helps, the first duplicatated event comes around 5 minutes after the initial webhook. The second comes 20 minutes after. And then I’m not sure about the timeline but they stop around 2 hours after the initial event.

I managed to track which ones are duplicates by using the req.body.event_ts field on the webhook combined with the x-zm-trackingid header and the req.body.event field. But it’s still unfortunate that we have to receive 4 times as many webhooks.

By removing the webhooks do you mean disabling the feature and then re-enabling it?

Is there a chance that this has to do with the fact that we have 3 apps (dev, staging, and production) all on the same account and all receiving webhooks to different URLs?


I am going to message you so you can private message me a few screenshot examples of these duplicated events.

Yes this what I mean. Thanks for clarifying :slight_smile:

Are each of the endpoints subscribed to the same webhooks and receiving duplicates?