Duplicate phone webhook events received

Duplicate Zoom Phone Webhook Events
We’re currently receiving duplicate webhook events for the following webhooks:

  • phone.callee_ringing
  • phone.callee_answered
  • phone.recording_completed
  • phone.recording_transcript_completed

By far the worst culprit is the transcript endpoint. Since a platform release to Zoom on 19th, we’re now seeing 40 to 50 duplicate event messages per call. All raw event messages are identical apart from the “event_ts” value. These are all extremely close together, often just milliseconds apart.

We’re doing our best to block duplicates but this isn’t always possible.

Zoom Support are refusing to help here even though I see it as a platform issue and not a developer issue. Our logs clearly show a huge increase in events since 19th May.

Has anyone else experienced this issue? We’re seeing identical behaviour in multiple Zoom accounts.

How To Reproduce
Steps to reproduce the behavior:
*1. Create a server to server OAuth app
*2. Subscribe to Zoom Phone webhooks as listed above
*3. Add an endpoint to consume the webhooks
*4. Validate the webhooks
*5. Make Zoom phone calls
*6 Duplicate webhook events are received

Has anyone else seen this, and does anyone know how we can get Zoom Support to take this issue seriously, please?

Thanks for your help,
Ben

If anyone also experiences this, apparently it’s by design to reduce instances of missed webhooks. I’ve been told that you can use the x-zm-trackingid header to deduplicate requests, although be mindful that you get many requests within just a few milliseconds. At the moment, they only send duplicates for the phone.recording_transcript_completed event. My original post was incorrect in stating it happened for other events. Although, if it was added by Zoom to address issues with missed webhooks, then I can only assume that it will be added for other Zoom Phone events and then ultimately for other Zoom product webhooks as well. I don’t yet have confirmation on this, but apparently the documentation will be updated.
So, if you’re consuming webhooks, then it seems that you’ve got to build in functionality to make your webhook endpoint idempotent.

Thanks for sharing this info @ben.acceleraate !

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