# JOIN\_MEETING\_FAILED error

**URL:** <https://devforum.zoom.us/t/join-meeting-failed-error/100848>\
**Category:** Meeting SDK\
**Created:** [December 27, 2023, 11:29pm UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848 "2023-12-27T23:29:12Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebasg91](https://avatars.discourse-cdn.com/v4/letter/s/5fc32e/32.png) [@sebasg91](https://devforum.zoom.us/u/sebasg91)\
**Post date:** [December 27, 2023, 11:29pm UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/1 "2023-12-27T23:29:12Z")

</div>

Hi,

I am trying to integrate Zoom Meetings within my webapp (react js).  
I keep getting the following error:

{ type: “JOIN\_MEETING\_FAILED”, reason: “This account does not exist or does not belong to you”, errorCode: 200 }

Same when cloning the video-sdk-sample [GitHub - zoom/videosdk-web-sample: Zoom Video SDK web sample](https://github.com/zoom/videosdk-web-sample) and configuring the config.js file.

The Zoom App I created has a status “Activated” and the type is  
Meeting SDK  
Intend to publish: No  
User Managed

I added extra scope permissions but it does not seem to help.

I am providing the Client ID and Client Secret yet I still get the error stated above.

Can someone please point me in the right direction to fix this issue? Any further configuration? Anything else to set up? Thanks

---

<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 28, 2023, 2:05am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/2 "2023-12-28T02:05:14Z")

</div>

@sebasg91 ,

The sample which you are using is for Video SDK.  
If you are integrating Zoom Meeting, you will need to use Meeting SDK

Video SDK and Meeting SDK are 2 different products, hence you are getting the error message.

The below sample might be useful for you. Look at the Local folder for react sample code.

> **[GitHub - zoom/meetingsdk-web-sample: Zoom Meeting SDK web sample](https://github.com/zoom/meetingsdk-web-sample)**
>
> Zoom Meeting SDK web sample. Contribute to zoom/meetingsdk-web-sample development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![sebasg91](https://avatars.discourse-cdn.com/v4/letter/s/5fc32e/32.png) [@sebasg91](https://devforum.zoom.us/u/sebasg91)\
**Post date:** [December 28, 2023, 2:38am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/3 "2023-12-28T02:38:09Z")

</div>

Thanks @chunsiong.zoom for your prompt response.

I am just trying to migrate from Twilio. I just need to support one-on-one video calls inside my react app. I basically went to marketplace, created and app and not sure how it ended up being a “Meeting SDK” type. I couldn’t find anywhere to create a “Video SDK” app. Could you please point me in the right direction for where / what type of app to create? Any good tutorials that could help with this?

Thanks for your help again.

---

<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 28, 2023, 2:50am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/4 "2023-12-28T02:50:49Z")

</div>

@sebasg91 ,

I understand. Do sign up for a Video SDK account here  
You will need to use a different email address from the one which you are currently using.

Video SDK is a different account from Zoom Meeting, hence the requirement for different email address.

> **[Video SDK - App Marketplace](https://developers.zoom.us/docs/video-sdk/developer-accounts/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

After that, you can follow this guide here

> **[web | Zoom Video SDK + Twilio migration](https://developers.zoom.us/docs/video-sdk/twilio/web/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

---

<div class="post-metadata">

**Author:** ![sebasg91](https://avatars.discourse-cdn.com/v4/letter/s/5fc32e/32.png) [@sebasg91](https://devforum.zoom.us/u/sebasg91)\
**Post date:** [December 28, 2023, 4:24am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/5 "2023-12-28T04:24:43Z")

</div>

I managed to created an account with VideoSDK. Now if I go to Develop (top right) I only see “Build Video SDK”. There I only get a simple form with App name, email and then I have SDK credentials / API Keys / Add feature. No Save, Continue, Submit or anything, which almost feels like it’s broken. Should I be able to do something else there?

Using these new SDK credentials I get the exact same error as before:  
{ type: “JOIN\_MEETING\_FAILED”, reason: “This account does not exist or does not belong to you”, errorCode: 200 }

I downloaded Web v1.10.1, run `npm install`, updated the config.js and still no luck 😕

Am I missing something? Does the app need to be approved or somethign like that?

---

<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 28, 2023, 7:04am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/6 "2023-12-28T07:04:42Z")

</div>

@sebasg91 please tag me @chunsiong.zoom in your response to get my attention.

After you fill in the app name, name and and email address, you should be able to start using the Video SDK credentials. There is no additional steps needed to save or publish.

**SDK Credentials**  
For the sample app which you are referring to, you will need to use the SDK Key and SDK Secret to sign a JWT token.

**API Keys**  
These are use to access the REST API

**Add Feature**  
These are event / web hook subscription

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/1/0/10aa0d5a694c27fae74840db4ffa6eef83983c7b.png)

Could you share a sample of the signature which you have generated?

---

<div class="post-metadata">

**Author:** ![sebasg91](https://avatars.discourse-cdn.com/v4/letter/s/5fc32e/32.png) [@sebasg91](https://devforum.zoom.us/u/sebasg91)\
**Post date:** [December 28, 2023, 8:32am UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/7 "2023-12-28T08:32:55Z")

</div>

Here is a token:  
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoiVnV2UVE5QUdTZUdTV0RaaTVweHVodyIsImlhdCI6MTcwMzc1MjE3NCwiZXhwIjoxNzAzNzU5Mzc0LCJ0cGMiOiJ0ZXN0IiwicHdkIjoiMTIzNDU2IiwidXNlcl9pZGVudGl0eSI6IiIsInNlc3Npb25fa2V5IjoiIiwicm9sZV90eXBlIjoiIn0.2romQ2lJwgwuHcocY4J24osM80AtbA49I-eDt3GAUbs

Can you tell if there is anything wrong in it? As mentioned, all I changed in the sample code was just the config.js file.

---

<div class="post-metadata">

**Author:** ![laparoscopic](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/laparoscopic/32/64911_2.png) [@laparoscopic](https://devforum.zoom.us/u/laparoscopic)\
**Post date:** [November 5, 2025, 4:14pm UTC](https://devforum.zoom.us/t/join-meeting-failed-error/100848/8 "2025-11-05T16:14:31Z")

</div>

I have the same issue, impossibile to debug basically there is not clear reason why is failing

> [@{type: ‘JOIN\_MEETING\_FAILED’, reason: ‘Fail to join the meeting.’, errorCode: 200}](https://devforum.zoom.us/t/type-join-meeting-failed-reason-fail-to-join-the-meeting-errorcode-200/138496):
>
> I cannot connect anymore I keep getting the same message, it was working last year but not anymore this year. Signature seems fine but the error keeps popping and there is no clear message what is happening. This is how I generate the token: function generateSignature(clientID, clientSecret, meetingNumber, role) { const iat = Math.floor(Date.now() / 1000); const exp = iat + 60 \* 60 \* 2; const oHeader = {alg: “HS256”, typ: “JWT”}; const oPayload = { sdkKey: clientSecret, appKey: clientID, …
