File: C:/Users/fred/.codex/.tmp/plugins/plugins/zoom/skills/cobrowse-sdk/troubleshooting/common-issues.md
# Common Issues
Quick diagnostics for Zoom CoBrowse SDK issues.
- Ensure SDK script/package is loaded.
- Verify role-specific JWT generation on server.
- Validate token expiry and clock skew.
- Confirm session PIN flow between customer and agent.
## Docs Links / 404s
**Symptom**: Official doc links you found are stale or return 404.
**Fix**:
- Prefer the curated references under `references/` (these are meant to stay stable even if external URLs drift).
- If you need working code, start from official sample repos referenced by the skill, then adapt to your stack.
## Confusing "Who Creates the Session?"
**Symptom**: You built an "agent creates session" endpoint, but the customer flow seems to actually start the share / generate the PIN.
**Fix**:
- Treat **customer start/share** as the action that creates the shareable context (PIN/session), then the **agent joins** using that PIN/session info.
- Keep your server responsibilities narrow: token minting, optional auditing, and routing; avoid inventing "session creation" semantics that the SDK already owns.
## Two PIN Values (Most Common Integration Mistake)
**Symptom**: UI shows one PIN from backend/session record and another PIN from SDK event, agent gets `Pin not found` or `Cobrowse code not found`.
**Fix**:
- Treat `session.on("pincode_updated")` as the **authoritative support PIN** for agent entry.
- Display exactly one primary PIN in UI (label it clearly as "Support PIN").
- Do not surface provisional/debug PINs to users.
- When opening agent page with `?pin=...`, prefer freshly generated links and avoid stale bookmarks.
## Agent Desk Error `30308` (Pincode is not found)
**Symptom**: Zoom-hosted agent desk shows:
- `Cobrowse code not found`
- error code `30308`
**Fix**:
- Ensure customer session is active and not expired before agent joins.
- Use the latest PIN emitted by `pincode_updated`.
- If your app restarts or uses in-memory state, persist session/PIN mapping or avoid strict local PIN gating for desk launch.
- Have agent re-enter a fresh PIN from a newly started customer session.
## Plain HTML / Express Integration Friction
**Symptom**: Quickstarts assume Vite/modern build pipeline; your plain HTML/Express adaptation breaks.
**Fix**:
- Load the SDK exactly as the official snippet expects (script order matters).
- Avoid bundler-only patterns in plain HTML (ESM imports, `import.meta`, etc.) unless you add a bundler.
See:
- [Get Started](../get-started.md)
- [Get Started (official)](../references/get-started-official.md)