# Broken RTMS Websocket

**URL:** <https://devforum.zoom.us/t/broken-rtms-websocket/138724>\
**Category:** Realtime Media Streams\
**Created:** [November 14, 2025, 8:09pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724 "2025-11-14T20:09:39Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![John34](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/john34/32/50617_2.png) [@John34](https://devforum.zoom.us/u/John34)\
**Post date:** [November 14, 2025, 8:09pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/1 "2025-11-14T20:09:39Z")

</div>

My app users (beta) are not able to connect to RTMS.

Any user that does not have RTMS explicitly enabled in the app gets the in-meeting message that the app could not connect to meeting content. I can see in logs that I am no longer receiving RTMS webhooks for users in this configuration. (Accounts that have explicit RTMS approval work fine.) **This was not the case 1-2 weeks ago.**

Online documentation insists that without explicit Zoom approval for an account to use RTMS, app users do not have access to it. I have _ **not** _ found this to be true: calling startRTMS used to initiate a stream and send the webhook, regardless of account provisioning.

However, now, the startRTMS method returns success but no rtms\_started webhook is reaching my endpoint.

@elisa.zoom

---

<div class="post-metadata">

**Author:** ![John34](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/john34/32/50617_2.png) [@John34](https://devforum.zoom.us/u/John34)\
**Post date:** [November 14, 2025, 8:28pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/2 "2025-11-14T20:28:58Z")

</div>

I just noticed - when I hit the button that runs startRTMS, I see an alert that says “Your app failed to access meeting content.”

---

<div class="post-metadata">

**Author:** ![ojus.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ojus.zoom/32/734_2.png) [@ojus.zoom](https://devforum.zoom.us/u/ojus.zoom)\
**Post date:** [November 14, 2025, 8:55pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/3 "2025-11-14T20:55:41Z")

</div>

Hi @John34 ,

Happy to investigate this. I am going to DM you right now, please provide me with the following:

1. App ID / Client ID
2. Meeting IDs

---

<div class="post-metadata">

**Author:** ![John34](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/john34/32/50617_2.png) [@John34](https://devforum.zoom.us/u/John34)\
**Post date:** [November 17, 2025, 7:13pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/4 "2025-11-17T19:13:52Z")

</div>

@ojus.zoom Please respond when you can. I need to resolve this ASAP.

**The Problem**

I spent a lot of time over the weekend trying to figure out what’s going on.

Users cannot start an RTMS stream if they (a) aren’t on my account, (b) haven’t explicitly requested RTMS from Zoom, or (c) aren’t in a meeting with someone who has RTMS. My app is in beta, so it _is_ available for use by users outside of my development account.

For these beta users, I had a button in my UI for them to Start RTMS. This called `zoomSdk.startRTMS()` and started an RTMS stream for them. This was working for about two weeks, _including for users who didn’t meet the criteria above_ - i.e., weren’t on my account, hadn’t explicitly requested RTMS from Zoom, and weren’t in a meeting with someone who had RTMS.

As of Friday 11/14, this is no longer the case. Now, when a user presses the Start RTMS button, they see an alert that says, “Your app failed to access meeting content,” and Zoom does not send a `meeting.rtms_started` webhook to my app’s backend.

However, all of this _still works_ for users who are on my Zoom account, or who have requested RTMS from Zoom in the past.

I tested this a few times today, and sent you some more meeting\_uuids for meetings where the issue occurred.

**Possible Solutions**

- **Permissions** : All over the internet, I see hints that app users must be on the developer account, or have requested RTMS from Zoom, in order to start an RTMS stream. However, I know this _not to be true_, since I had users who did not meet those criteria successfully starting RTMS streams.

- Additionally, this would be an unreasonable requirement, since the process of requesting RTMS from Zoom takes multiple weeks, and would be a huge disincentive to installing these apps at all.

- **Scopes and Webhooks:** I have reviewed my scopes, APIs, and webhooks closely. Although I’d like to review them with a Zoom developer advocate to be safe, I don’t see any red flags here.

- **startRTMS:** When a user activates the Start RTMS button, my logs show a “Success” message. It appears the call is being made successfully. This is further evidenced by the “Your app failed to access meeting content” message in the Zoom client. This tells me that somewhere in the Zoom service, it is deciding not to send the RTMS webhook in response to `startRTMS`

In summary, it appears that before 11/14-ish, _any of my app users_ could call `startRTMS` and trigger a `meeting.rtms_started` webhook – but after 11/14-ish most of them lost that ability.

Please let me know what I should try. I really need to get this fixed ASAP, as it is blocking my beta testers.

Thanks.

---

<div class="post-metadata">

**Author:** ![michael.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael.zoom/32/37213_2.png) [@michael.zoom](https://devforum.zoom.us/u/michael.zoom)\
**Post date:** [November 17, 2025, 7:51pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/5 "2025-11-17T19:51:09Z")

</div>

Hey @John34, thanks for the depth here and apologies this was difficult to work through. Can we meet to discuss details on your app? I’ll DM you with more details.

---

<div class="post-metadata">

**Author:** ![John34](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/john34/32/50617_2.png) [@John34](https://devforum.zoom.us/u/John34)\
**Post date:** [November 17, 2025, 7:55pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/6 "2025-11-17T19:55:36Z")

</div>

Sounds good, please DM me. Would like to find some time soon to walk through it.

---

<div class="post-metadata">

**Author:** ![gauthambh](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gauthambh/32/64319_2.png) [@gauthambh](https://devforum.zoom.us/u/gauthambh)\
**Post date:** [November 17, 2025, 8:00pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/7 "2025-11-17T20:00:13Z")

</div>

I have filed the form but exactly at the 5th minute the meeting is getting cut off but before it worked thoroughout.

Is this deliberate for internal users or how?

@michael.zoom ?

---

<div class="post-metadata">

**Author:** ![JenBrissman](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jenbrissman/32/70512_2.png) [@JenBrissman](https://devforum.zoom.us/u/JenBrissman)\
**Post date:** [November 18, 2025, 7:17pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/8 "2025-11-18T19:17:37Z")

</div>

I’ve actually experienced something similar, but we are not seeing this widespread from customers. Can you share your meeting UUIDs with me (for the meetings you’ve experienced this with) so I can look into this more? Thank you! @gauthambh

---

<div class="post-metadata">

**Author:** ![John34](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/john34/32/50617_2.png) [@John34](https://devforum.zoom.us/u/John34)\
**Post date:** [November 18, 2025, 8:44pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/9 "2025-11-18T20:44:07Z")

</div>

@JenBrissman It looks like I’ve determined a fix, if not a root cause or justification.

If a Basic user has never added a credit card to their account, then they **cannot** - as of a week ago - start an RTMS stream.

However, if they add a credit card to their account, they can start an RTMS stream. This is true even if they subsequently remove the credit card. Once a credit card has been added, the “Share realtime meeting content with apps” setting appears in their account (defaults to TRUE).

@michael.zoom suggested this to me when we met yesterday. While it is not a fix - it’s an unnecessary extra step - it does give me a path forward. I’ve been advising my Basic account beta testers to add a credit card (and remove it if they wish) before they try to test.

---

<div class="post-metadata">

**Author:** ![gauthambh](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gauthambh/32/64319_2.png) [@gauthambh](https://devforum.zoom.us/u/gauthambh)\
**Post date:** [November 19, 2025, 5:11am UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/10 "2025-11-19T05:11:07Z")

</div>

You can check out this meeting uuid which was generated in my account: 7H11HOe6RyW1Yw719w431w==

What ever I try, my RTMS app cuts off websocket connection exactly at 5 minutes and we need a solution for this as we have pro accounts from zoom.

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [November 20, 2025, 8:06am UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/11 "2025-11-20T08:06:28Z")

</div>

@gauthambh are you using some sample code or are you connecting to the websocket directly?

For webhook, do ensure you immediately response status 200, if not there will bw another webhook which will fire 5 mins later. This duplicate webhook might cause the initial connection to drop, since there can only be 1 connection at any given time for that streamID.

---

<div class="post-metadata">

**Author:** ![gauthambh](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gauthambh/32/64319_2.png) [@gauthambh](https://devforum.zoom.us/u/gauthambh)\
**Post date:** [November 21, 2025, 5:51pm UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/12 "2025-11-21T17:51:29Z")

</div>

Can I DM you with the code sample?

@chunsiong.zoom - It was working 1 month ago and calls are suddenly dropping for the past 2 weeks with the same exact code.

I used the code example from the zoom rtms docs.

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [December 9, 2025, 4:15am UTC](https://devforum.zoom.us/t/broken-rtms-websocket/138724/13 "2025-12-09T04:15:25Z")

</div>

This issue was caused by a race condition where response 200 is not send immediately back to Zoom’s webhook service.

In this scenario, the webhook will attempt to retry 5 mins later. The logic attempts to connect to the same RTMS service 5 mins later, causing the original connection to drop, as there can only be 1 connection at a single point in time.

Solution: Send response 200 immediately after receiving webhook  
Comprehensive solution: Keep a state of connected websockets, and prevent reconnection if the connection is alreadyactive.
