# Segmentation Fault When Using @zoom/rtms SDK — Crashes After the client.join()

**URL:** <https://devforum.zoom.us/t/segmentation-fault-when-using-zoom-rtms-sdk-crashes-after-the-client-join/135958>\
**Category:** Realtime Media Streams\
**Created:** [August 1, 2025, 3:48pm UTC](https://devforum.zoom.us/t/segmentation-fault-when-using-zoom-rtms-sdk-crashes-after-the-client-join/135958 "2025-08-01T15:48:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hassan5](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/hassan5/32/62824_2.png) [@Hassan5](https://devforum.zoom.us/u/Hassan5)\
**Post date:** [August 1, 2025, 3:48pm UTC](https://devforum.zoom.us/t/segmentation-fault-when-using-zoom-rtms-sdk-crashes-after-the-client-join/135958/1 "2025-08-01T15:48:50Z")

</div>

I’m using the Zoom RTMS SDK (`@zoom/rtms`) in a Node.js app following the `rtms-quickstart-js` repo. My app receives the `meeting.rtms_started` webhook, but it `segfaults` immediately after calling `client.join(payload)`, even if all event listeners are removed.

### Output when I start the meeting:

> npm start

```auto
> rtms-quickstart@1.0.0 start
> node index.js
webhook | 2025-08-01T15:07:24.251Z | INFO | Creating standard HTTP webhook server
webhook | 2025-08-01T15:07:24.255Z | INFO | Listening for webhook events at http://localhost:8080/
webhook | 2025-08-01T15:07:37.381Z | DEBUG | Received webhook request: /
webhook | 2025-08-01T15:07:37.383Z | INFO | Received event: meeting.rtms_started
Received event: meeting.rtms_started
{
  "meeting_uuid": "IC72ewmGRbm9jmPmrUwNMQ==",
  "operator_id": "7z2o8fMIRTO_4w_RGX0JdA",
  "rtms_stream_id": "138bb5d5ee7c40e4b0754f86a18e28c5",
  "server_urls": "wss://zoomsjc144-195-46-189zssgw.sjc.zoom.us:443"
}
\[1\] 95479 segmentation fault npm start

```

I also tested with the following **minimal version** of `index.js` (no event listeners, no `setVideoParams` or `setDeskshareParams`, just `.join()`):

```auto
import rtms from "@zoom/rtms";

rtms.onWebhookEvent(async ({ event, payload }) => {
  console.log(`Received event: ${event}`);
  console.log(JSON.stringify(payload, null, 2));

  if (event !== "meeting.rtms_started") return;

  const client = new rtms.Client();
  try {
    await client.join(payload);
    console.log("Successfully joined stream");
  } catch (err) {
    console.error("join failed:", err);
  }
});

```

This version **still crashes with a segmentation fault immediately after `.join(payload)`**.

### Environment

- **Node version:** `v23.2.0`
- **RTMS SDK version:** `@zoom/rtms@0.0.2`
- **Platform:** Mac M3

---

<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:** [August 5, 2025, 4:04am UTC](https://devforum.zoom.us/t/segmentation-fault-when-using-zoom-rtms-sdk-crashes-after-the-client-join/135958/2 "2025-08-05T04:04:04Z")

</div>

@Hassan5  
You’re running into a segmentation fault because the RTMS client expects **at least one data subscription handler** to be registered (e.g., `onVideoData`, `onAudioData`, or `onTranscriptData`). Without any handlers, the SDK currently crashes after `client.join()`.

To fix this, **register at least one of the following** before calling `join()`:

```auto
client.onVideoData((data) => {
  // handle video frame
});

client.onAudioData((data) => {
  // handle audio frame
});

// Optional: also available
client.onTranscriptData((data) => {
  // handle transcript chunk
});

```

> ⚠ `onDeskshareData` is currently **non-available** ,

---

<div class="post-metadata">

**Author:** ![MaxM](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/maxm/32/42303_2.png) [@MaxM](https://devforum.zoom.us/u/MaxM)\
**Post date:** [September 2, 2025, 7:14pm UTC](https://devforum.zoom.us/t/segmentation-fault-when-using-zoom-rtms-sdk-crashes-after-the-client-join/135958/3 "2025-09-02T19:14:07Z")

</div>

Closed on September 2, 2025, 7:14pm UTC


