Video SDK Error: “This account does not exist or does not belong to you” (Error Code 200) - Valid Credentials

Video SDK Error: “This account does not exist or does not belong to you” (Error Code 200) - Valid Credentials

Problem Description

I’m encountering a persistent JOIN_MEETING_FAILED error when attempting to join a Video SDK session using the Web SDK (@zoom/videosdk v2.2.12). The error message states:

{
  type: "JOIN_MEETING_FAILED",
  reason: "This account does not exist or does not belong to you",
  errorCode: 200
}

Important: I have verified multiple times that my SDK Key and SDK Secret are correct and copied directly from the Zoom Marketplace Video SDK app credentials page.

Implementation Details

Backend (JWT Token Generation):

  • Using Deno/Supabase Edge Function
  • JWT signing library: jsrsasign@11.1.0
  • Token generation code:
const header = { alg: 'HS256', typ: 'JWT' };
const payload = {
  sdkKey: sdkKey,              // Verified correct
  mn: cleanMeetingNumber,       // Format: "session-{uuid}"
  role: role === 'host' ? 1 : 0,
  iat: Math.floor(Date.now() / 1000),
  exp: Math.floor(Date.now() / 1000) + 7200,
  appKey: sdkKey,
  tokenExp: Math.floor(Date.now() / 1000) + 7200,
};

const sHeader = JSON.stringify(header);
const sPayload = JSON.stringify(payload);
const zoomToken = KJUR.jws.JWS.sign('HS256', sHeader, sPayload, sdkSecret);

Frontend (Web SDK Implementation):

import ZoomVideo from '@zoom/videosdk';

const client = ZoomVideo.createClient();
await client.join(sessionName, token, userName);
// Fails with error 200

What I’ve Verified

:white_check_mark: SDK Credentials: Copied directly from Zoom Marketplace, correct SDK Key and Secret
:white_check_mark: JWT Structure: Header and payload match Zoom documentation exactly
:white_check_mark: Token Format: Successfully generates a valid JWT string
:white_check_mark: Session Name: Tested with various formats (alphanumeric, UUIDs with prefix)
:white_check_mark: Role Values: Using correct values (1 for host, 0 for participant)
:white_check_mark: Timestamps: iat and exp are valid Unix timestamps
:white_check_mark: Algorithm: Using HS256 as specified in documentation
:white_check_mark: SDK Version: Using latest stable version (v2.2.12)

Debug Output

Backend logs show successful token generation:

[generate-zoom-token] SDK Key present: true length: 36
[generate-zoom-token] SDK Secret present: true length: 36
[generate-zoom-token] SDK Key first 10 chars: kzUSyIxvaL...
[generate-zoom-token] Token generated successfully for host
[generate-zoom-token] meetingNumber: session-37f6265f-b72d-4665-ae7e-ebb67ece8b30

Frontend logs before join attempt:

[useZoomSDK] sessionName: session-37f6265f-b72d-4665-ae7e-ebb67ece8b30
[useZoomSDK] userName: Test User
[useZoomSDK] token length: 250+
[useZoomSDK] CALLING client.join()...
[useZoomSDK] Join error: {type: "JOIN_MEETING_FAILED", reason: "This account does not exist or does not belong to you", errorCode: 200}

Questions

  1. What does error code 200 specifically indicate? The error message suggests an account issue, but my credentials are definitely correct.

  2. Is there a credential verification endpoint? Is there a way to test/validate my SDK Key and Secret before attempting to join a session?

  3. Could this be related to the Video SDK app configuration? Are there any specific settings in the Zoom Marketplace app that need to be enabled beyond just creating the app and getting credentials?

  4. JWT payload requirements: Are there any additional required or recommended fields in the JWT payload that aren’t explicitly mentioned in the documentation?

  5. Session name restrictions: Are there any undocumented restrictions on the session name format? I’m using the format session-{uuid}.

Environment

  • SDK: @zoom/videosdk v2.2.12
  • Platform: Web (React/TypeScript)
  • Browser: Chrome (latest), Firefox (latest)
  • Backend: Deno/Supabase Edge Functions
  • JWT Library: jsrsasign v11.1.0

Additional Context

  • The Video SDK app is properly created in the Zoom Marketplace
  • The app is activated and credentials are shown as valid in the dashboard
  • No other error messages or warnings appear before the join failure
  • The same error occurs for both host and participant roles

Has anyone encountered this specific error with valid credentials? Any insights would be greatly appreciated!

Hi @Samdekian
Thanks for reaching out to us and sorry to hear you are having issues with your Video SDK account. Are you still experiencing this on your end?