Troubleshooting RTMS
This topic covers common errors and issues you may encounter when using Realtime Media Streams (RTMS) across all products.
Error codes
These are common errors when starting or using RTMS.
Error 2308 - Not allowed to start RTMS app
What it means: The user attempting to start RTMS does not have the required permissions.
Common causes:
- User is not the meeting host or alternative host
- User joined anonymously using a meeting link instead of being on the invitation list
How to resolve:
- Ensure the user starting RTMS is the meeting host or an alternative host.
- For external meetings, add the user to the meeting invitation list rather than having them join anonymously.
Error 2310 - Failed to perform RTMS app operation
What it means: The RTMS start operation was rejected. This may appear as HTTP 400 with error code 2310.
Common causes:
- No active Zoom Developer Pack subscription on your account
- Expired Developer Pack trial
- Account type does not support RTMS (Basic accounts)
How to resolve:
- Verify you have an active Zoom Developer Pack subscription. For plan options, see Developer pricing.
- If using a Basic account, upgrade to a paid plan and purchase Developer Pack credits.
- If you recently purchased Developer Pack, wait 1-2 minutes for provisioning to complete.
Concurrent stream limits
RTMS enforces a maximum number of concurrent unique session IDs based on your Developer Pack subscription:
- Free trial: 5 concurrent streams
- Developer Pack: 2,000 concurrent streams
Each unique RTMS session ID counts as one concurrent stream. A new session ID is created when your application requests a media server from Zoom, which happens when:
- Starting RTMS in a new meeting, webinar, Contact Center engagement, or Video SDK session
- Opening a new WebSocket connection for a different media type from the same meeting
For example, if you subscribe to audio and video over separate WebSocket connections for the same meeting, that counts as two concurrent streams.
Monitoring your usage
Contact your account executive to discuss your concurrent stream usage and limits.
For current pricing and concurrent stream limits, see Developer pricing.
Stream termination (stop_reason values)
When an RTMS stream stops, the stopped webhook event includes a stop_reason field indicating why the stream terminated.
For the complete list of stop_reason values and their meanings, see RTMS_STOP_REASON.
For connection interruption and reconnection procedures (stop_reason 10-19 and 24), see Failover and reconnection:
Webhook issues
RTMS uses webhooks to notify your app when streams start, stop, or encounter issues.
Webhook never fires after starting RTMS
Symptoms:
startRTMS()returns success, but the started webhook never arrives- Meeting RTMS:
meeting.rtms_startedorwebinar.rtms_startednever fires - Contact Center:
contact_center.voice_rtms_startednever fires - Video SDK:
session.rtms_startednever fires
Common causes:
- Event subscriptions not properly configured in your app
- Webhook endpoint URL incorrect or unreachable
- Event subscription changes not yet propagated (takes 1-2 minutes)
- Account does not support RTMS (Basic accounts)
How to resolve:
- Verify you have subscribed to the appropriate RTMS events in your app configuration:
- For meetings/webinars:
meeting.rtms_startedandmeeting.rtms_stopped - For Contact Center:
contact_center.voice_rtms_startedandcontact_center.voice_rtms_stopped - For Video SDK:
session.rtms_startedandsession.rtms_stopped
- For meetings/webinars:
- Confirm your webhook endpoint URL is correct and publicly accessible.
- After enabling event subscriptions, wait 1-2 minutes for the changes to propagate before testing.
- Check your webhook endpoint logs to confirm Zoom is reaching your server.
- Verify your account type supports RTMS (see Plan compatibility).
Webhooks work for other events but not RTMS
What it means: Other webhook events (like meeting.started, meeting.ended) arrive successfully, but RTMS-specific webhooks never fire.
Common causes:
- RTMS events not selected in your event subscription configuration
- Account type does not support RTMS (Basic accounts)
How to resolve:
- Sign into the Zoom App Marketplace.
- In the upper-right of the screen, choose Manage.
- Select your app from the list.
- In the navigation pane, choose Access.
- Choose Event Subscriptions.
- Choose Add Events and verify you have selected the RTMS events for your product.
- Choose Save.
After enabling event subscriptions, wait 1-2 minutes for the changes to propagate before testing. Also verify your account has an active Zoom Developer Pack subscription.
App behavior issues
These issues affect app lifecycle and media behavior.
Transcript stops after switching to phone audio
Issue: When a user switches to phone audio while keeping computer audio connected, transcript data stops flowing.
Affected products: Meetings, Webinars
Workaround:
- Have the user hang up the phone and unmute computer audio to resume transcripts.
- Alternatively, restart the Zoom app (host only) to restore transcript generation.
Permanent solution: If the user selects "Leave computer audio" before dialing in, transcripts will continue after switching to phone.
No callback when app closed using menu
Issue: When a user closes an RTMS app by selecting Close current app from the app menu, no callback fires and the RTMS stream may not be cancelled.
Affected products: Meetings (Zoom Apps with RTMS)
Impact: This can result in orphaned streams and resource leaks.
Workaround: Implement monitoring on your backend to detect stale RTMS connections and close them after a timeout period.
Plan compatibility
All RTMS products (meetings, webinars, Contact Center, Video SDK) require a Zoom Developer Pack subscription. RTMS is not available on Basic accounts.
| Plan Type | RTMS Support | Notes |
|---|---|---|
| Basic (Free) | Not supported | RTMS webhooks will not fire; API calls will fail with error 2310 |
| Pro | Supported | Requires Zoom Developer Pack subscription |
| Business | Supported | Requires Zoom Developer Pack subscription |
| Enterprise | Supported | Requires Zoom Developer Pack subscription |
Important
All paid plans require an active Zoom Developer Pack subscription to use RTMS. For pricing options, see Developer pricing.