# React 19 not supported with embedded SDK

**URL:** <https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827>\
**Category:** Meeting SDK\
**Created:** [July 3, 2025, 5:30pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827 "2025-07-03T17:30:52Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 3, 2025, 5:30pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/1 "2025-07-03T17:30:52Z")

</div>

**How To Reproduce**

1. Sync down sample React app: github DOT com/zoom/meetingsdk-react-sample
2. Upgrade react and react-dom to 19.1.0
3. Change line to import from App-new (line 3 of main.tsx, per the docs)
4. Observe error in console

Error:  
@zoom\_meetingsdk\_embedded.js?v=6b8a5767:18776 Uncaught TypeError: Cannot read properties of undefined (reading ‘ReactCurrentOwner’)

Is there a roadmap for this?

---

<div class="post-metadata">

**Author:** ![ticorrian.heard](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ticorrian.heard/32/70213_2.png) [@ticorrian.heard](https://devforum.zoom.us/u/ticorrian.heard)\
**Post date:** [July 17, 2025, 1:46pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/2 "2025-07-17T13:46:46Z")

</div>

Hi @Sam14 I’m following up from our meeting yesterday. I’m pinging our PM Tommy, for more information on your questions and will get back to you shortly.

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [July 17, 2025, 2:11pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/3 "2025-07-17T14:11:57Z")

</div>

Hey @Sam14,

I followed the repro steps you shared and can use the sample with React `19.1.0`. Can you try again?

 ![Screenshot 2025-07-17 at 7.39.46 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/a/b/ab048051b28c780d914faffc98c4054d2a033a41.jpeg)

You might see a warning like `You are importing createRoot from "react-dom" which is not supported` or `Each child in a list should have a unique "key" prop` but those wouldn’t impact the SDKs functionality.

---

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 17, 2025, 2:32pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/4 "2025-07-17T14:32:40Z")

</div>

Hi @ekaansh.zoom, I’m still seeing the issue.

Are you sure in your repro steps you chaned line 3 in main.tsx to `import App from "./App-New";`? This is the component that uses the Component View, not the Client View.

Thanks.

---

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 17, 2025, 2:39pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/5 "2025-07-17T14:39:46Z")

</div>

@ekaansh.zoom I’m noticing one difference. I used `pnpm` to install dependencies (as we do in our app, out of habit), and that’s causing an error. With `npm install`, the error doesn’t appear. Something is different in the way the package managers are installing dependencies.

I’m going to dig further…

---

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 17, 2025, 3:20pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/6 "2025-07-17T15:20:53Z")

</div>

@ekaansh.zoom I tried a few various tweaks to `pnpm` settings to see if I could get it to behave like `npm` but to no avail. I suspect if you bump @zoom/meetingsdk’s dependencies:

```auto
  "peerDependencies": {
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "redux": "4.2.1",
    "react-redux": "8.1.2",
    "lodash": "^4.17.21",
    "redux-thunk": "2.4.2"
  },

```

to version 19.1.0, then an installation via `npm` would also give you the same error. I don’t have more time to dig into how pnpm/npm module resolution differences work, but that is hopefully enough repro information. Let me know if I can do more.

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [July 21, 2025, 12:27pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/7 "2025-07-21T12:27:06Z")

</div>

Hi @Sam14,

I believe it depends on the module resolution strategy that your package manager uses. I used `bun` for example in the [bun repro](https://github.com/EkaanshArora/meetingsdk-react-sample/tree/repro-react19) and it works as expected. I also tried the same with `npm` and it works as expected. I’d suggest you use `npm` or `bun` for now.

If using `pnpm` is a must you can try the following `.npmrc` file to potentially have the same behaviour:

```python
# Force single version of React to avoid version conflicts
shamefully-hoist=true

# Auto install peer dependencies
auto-install-peers=true

# Use legacy peer deps behavior similar to npm
strict-peer-dependencies=false 

```

---

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 21, 2025, 3:18pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/8 "2025-07-21T15:18:24Z")

</div>

Hi @ekaansh.zoom,

Thanks for the reply. A few things:

- `pnpm` is the non-negotiably the package manager we must use. It is the de facto package manager that is recommended on all new projects by various popular tooling frameworks, authors, and libraries
- `.pnpmrc` is not the valid settings file. The proper `pnpm` settings file is `.npmrc`.
- The `main.tsx` is not pointing at the Component View. If you change the import to be from `App-New.tsx`, you will still observe the same error
- Even with the proper `.npmrc` and import fix, the same error is present

Taking a step back, I believe the core issue is that `@zoom/meetingsdk` is not compatible with React 19. We can perhaps coerce package managers to sidecar install React 18 for one package, but that is not fixing the underlying issue as users will almost definitely not want two versions of React bundled and shipped to the client.

Can we instead try updating the dependencies of `@zoom/meetingsdk` itself to React 19 and then trying?

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [July 21, 2025, 4:06pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/9 "2025-07-21T16:06:22Z")

</div>

Hi @Sam14,

I understand the requirement for having support for your preferred toolchain but `pnpm` is far from the _de facto package manager_. We still use and [recommend](https://developers.zoom.us/docs/video-sdk/web/get-started/#custom-user-interface) `npm` to be the default package manager, making sure it works with the package manager that ships with `node`. You can see [this discussion](https://socket.dev/blog/node-js-takes-steps-towards-removing-corepack) about node pmwg sticking with npm (and removing corepack).

> I believe the core issue is that `@zoom/meetingsdk` is not compatible with React 19

That’s a somewhat fair callout, we’re working on updating the source to use React 19 but this effort needs time. I’ve shared the feedback with engineering. In the meantime you can still use it in React 19 projects given you manage the deps yourself. Please look at the bun example here: [meetingsdk-react-sample/src/main.tsx at 4a0dbc3d181866a3b6fd1fb230b6209fb0fbb77a · EkaanshArora/meetingsdk-react-sample · GitHub](https://github.com/EkaanshArora/meetingsdk-react-sample/blob/4a0dbc3d181866a3b6fd1fb230b6209fb0fbb77a/src/main.tsx#L3)

---

<div class="post-metadata">

**Author:** ![Sam14](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam14/32/70042_2.png) [@Sam14](https://devforum.zoom.us/u/Sam14)\
**Post date:** [July 21, 2025, 5:54pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/10 "2025-07-21T17:54:26Z")

</div>

> That’s a somewhat fair callout, we’re working on updating the source to use React 19 but this effort needs time. I’ve shared the feedback with engineering.

No worries, as long as we’re on the same page on this bit! Thanks for the quick communication, appreciated.

---

<div class="post-metadata">

**Author:** ![tommypomelo](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommypomelo/32/53203_2.png) [@tommypomelo](https://devforum.zoom.us/u/tommypomelo)\
**Post date:** [August 8, 2025, 4:56pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/11 "2025-08-08T16:56:15Z")

</div>

Hey @ekaansh.zoom - I understand the team is working hard to update to React 19, but I wanted to see if there was any update? We are using pnpm and have tried a ton of workarounds to no avail. We are worried we’ll have to rollback our entire deployment to React 18 or create a separate web app entirely, so this is a major blocker for us. Do you have a time estimate for supporting React 19 properly?

---

<div class="post-metadata">

**Author:** ![Isabel](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/isabel/32/69272_2.png) [@Isabel](https://devforum.zoom.us/u/Isabel)\
**Post date:** [August 25, 2025, 9:52am UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/12 "2025-08-25T09:52:14Z")

</div>

@tommypomelo The only way I have gotten this to work is to use the CDN approach. It is not ideal but it has worked for me.

---

<div class="post-metadata">

**Author:** ![CharlesGs](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/charlesgs/32/72472_2.png) [@CharlesGs](https://devforum.zoom.us/u/CharlesGs)\
**Post date:** [November 26, 2025, 6:20pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/14 "2025-11-26T18:20:46Z")

</div>

Hi, how do you implemented the CDN approach? I’m, facing the same issue & I’m trying to implement CDN

---

<div class="post-metadata">

**Author:** ![mehdi\_zoom](https://avatars.discourse-cdn.com/v4/letter/m/e5b9ba/32.png) [@mehdi\_zoom](https://devforum.zoom.us/u/mehdi_zoom)\
**Post date:** [December 3, 2025, 11:07am UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/15 "2025-12-03T11:07:15Z")

</div>

`@zoom/meetingsdk` declares the same packages as both their dependencies and peer dependencies. In this case, it seems like pnpm would resolve peer deps from the parent package, and ignore the duplicate dependencies. If you can’t change global npmrc settings, you can patch the package to remove the duplicate peer dependencies

`.pnpmfile.cjs`:

```js
function readPackage(pkg, context) {
  // @zoom/meetingsdk declares react, react-dom, react-redux, redux, and redux-thunk
  // as BOTH dependencies (at version 18.2.0) AND peerDependencies (at 18.2.0).
  // This causes pnpm to resolve peer deps from the parent,
  // instead of using the bundled React 18 from the package's own dependencies.
  //
  // Solution: Remove the peerDependencies so pnpm uses the bundled versions.
  if (pkg.name === "@zoom/meetingsdk") {
    context.log(
      `Removing peerDependencies from ${pkg.name} to use bundled React`,
    );
    delete pkg.peerDependencies;
  }

  return pkg;
}

module.exports = {
  hooks: {
    readPackage,
  },
}; 

```

Or if you want something more bulletproof:

```js
/**
 * pnpmfile hook to customize package resolution during installation.
 *
 * @see https://pnpm.io/pnpmfile
 */

/**
 * Removes peerDependencies that are also declared in dependencies.
 * This forces pnpm to use the package's bundled versions instead of
 * resolving peers from the parent context.
 *
 * @param {object} pkg - The package.json content of the package being processed
 * @param {object} context - Context object with log method
 * @returns {object} - Modified package.json content
 */
function readPackage(pkg, context) {
  // @zoom/meetingsdk@4.1.0 declares react, react-dom, react-redux, redux, and redux-thunk
  // as BOTH dependencies (at version 18.2.0) AND peerDependencies (at 18.2.0).
  // This causes pnpm to resolve peer deps from the parent,
  // instead of using the bundled React 18 from the package's own dependencies.
  //
  // Solution: Remove peerDependencies that overlap with dependencies so pnpm uses the bundled versions.
  if (pkg.name === "@zoom/meetingsdk" && pkg.peerDependencies && pkg.dependencies) {
    const overlapping = Object.keys(pkg.peerDependencies).filter(
      (dep) => dep in pkg.dependencies
    );

    if (overlapping.length > 0) {
      context.log(
        `${pkg.name}: Removing overlapping peerDependencies to use bundled versions: ${overlapping.join(", ")}`
      );
      for (const dep of overlapping) {
        delete pkg.peerDependencies[dep];
      }
    }
  }

  return pkg;
}

module.exports = {
  hooks: {
    readPackage,
  },
};

```

---

<div class="post-metadata">

**Author:** ![Sam18](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/sam18/32/50287_2.png) [@Sam18](https://devforum.zoom.us/u/Sam18)\
**Post date:** [December 9, 2025, 10:01pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/16 "2025-12-09T22:01:06Z")

</div>

Hi there, is there any update or timeline on when this can be supported for real? For us, none of the workarounds have worked.

---

<div class="post-metadata">

**Author:** ![Ben22](https://avatars.discourse-cdn.com/v4/letter/b/58956e/32.png) [@Ben22](https://devforum.zoom.us/u/Ben22)\
**Post date:** [February 17, 2026, 3:10pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/18 "2026-02-17T15:10:17Z")

</div>

Was anyone able to find a solution for this? We are still unable to upgrade to React 19 due to this.

---

<div class="post-metadata">

**Author:** ![vysogot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vysogot/32/57401_2.png) [@vysogot](https://devforum.zoom.us/u/vysogot)\
**Post date:** [March 26, 2026, 1:54pm UTC](https://devforum.zoom.us/t/react-19-not-supported-with-embedded-sdk/134827/19 "2026-03-26T13:54:35Z")

</div>

I had the same issue and Claude helped me out. I’m using it in one project inside a PayloadCMS app. Here’s one extracted from it. Hope it helps. I can’t post a link here, but my solution is on github: look for vysogot/react-19-zoom-integration repo
