HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/.codex/.tmp/plugins/plugins/zoom/skills/meeting-sdk/references/forum-top-questions.md
---
title: "Forum-Derived Top Questions (Meeting SDK)"
---

# Forum-Derived Top Questions (Meeting SDK)

Use this as a high-signal checklist of what developers repeatedly ask about the **Zoom Meeting SDK** (Web, Mobile, Desktop, Linux).

## Fast Routing Questions (Ask First)

- Platform: **Web** vs **Android/iOS** vs **Windows/macOS** vs **Linux headless**
- Web integration: **Client View (CDN + `ZoomMtg`)** vs **Component View (npm + `ZoomMtgEmbedded`)**
- Join type: **join** as participant vs **start** as host
- Auth inputs you have: `sdkKey`, `sdkSecret` (server only), `meetingNumber`, `role`, `zak` (if starting as host), `passcode`
- Exact error: full error code/message + SDK version

## Signatures (Most Common Root Cause)

- **Generate signature server-side only** (never expose SDK Secret in browser/mobile client code).
- Use the right payload fields:
  - `sdkKey`, `mn` (meeting number), `role`, `iat`, `exp`, `tokenExp`
- Typical mistakes:
  - Wrong meeting number format (non-digits; strip formatting)
  - `exp` too long/short, or client/server clock skew
  - Mixing Meeting SDK signature with REST API OAuth/JWT app-type tokens (different things)

## Web SDK: Client View vs Component View Confusion

- **Client View (CDN)** uses `ZoomMtg.*` callback style.
- **Component View (npm)** uses `ZoomMtgEmbedded.createClient()` with promise-based APIs.
- When a question is about “hide UI”, “toolbar”, “meeting info”, first confirm which view they are using:
  - Some UI changes are only possible in **one** of the views, or not supported at all.

## “Hide Meeting Password / Invite URL / Meeting Info”

Common ask: “How do I hide passcode / meeting info / invite URL in Meeting SDK?”

What to cover in answers:
- What’s supported by the SDK (official flags/APIs) vs what is not.
- If the goal is “don’t leak passcode”, the most reliable approach is usually:
  - Use meeting settings that reduce exposure (and avoid displaying it in your own UI)
  - Don’t log it client-side
  - Don’t render invite UI if you control that surface (Component View)

## Join Failures and Timeouts (Web)

Common asks:
- “Join meeting failed”
- “Joining meeting timeout”
- “Browser doesn’t support gallery view”

Checklist:
- Confirm `crossOriginIsolated` / SharedArrayBuffer requirements (if using features that need it)
- Confirm HTTPS + correct COOP/COEP headers (when required)
- Confirm ad blockers / CSP / corporate proxies aren’t blocking Zoom assets
- Confirm correct `passWord` casing (Web Client View uses `passWord`)

## Captions / Transcript UI

Common asks:
- Enabling captions
- Hiding captions but transcript still shows

Answer pattern:
- Separate “what the host/account policy controls” from “what SDK UI controls”
- Call out constraints: some transcript/caption behaviors are server-side policy and not fully suppressible from SDK UI alone

## Waiting Room and Admission Flow

Common asks:
- Enabling/disabling waiting room
- Notifications and UI behavior

Answer pattern:
- Distinguish Meeting settings (host/account) vs SDK client behavior
- If the goal is “auto-admit” or “control admission”, you likely need the host controls (and sometimes REST API) rather than just SDK UI changes

## Raw Data / Raw Recording

Common asks:
- Start raw recording fails (permissions)
- Raw data availability varies by platform

Answer pattern:
- Always ask platform + SDK variant and whether they’re using supported raw-data APIs for that platform
- If it’s permission-related:
  - confirm required entitlements/features
  - confirm app permissions / OS permissions

## Performance: “Save CPU”, Gallery View, Low-End Devices

Common asks:
- Gallery view availability
- High CPU usage

Checklist:
- Reduce subscribed video streams / lower quality where supported
- Ensure you’re not rendering unnecessary DOM/video elements (Component View)
- Confirm the device/browser constraints (some behavior is expected)