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_started or webinar.rtms_started never fires
  • Contact Center: contact_center.voice_rtms_started never fires
  • Video SDK: session.rtms_started never 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_started and meeting.rtms_stopped
    • For Contact Center: contact_center.voice_rtms_started and contact_center.voice_rtms_stopped
    • For Video SDK: session.rtms_started and session.rtms_stopped
  • 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:

  1. Sign into the Zoom App Marketplace.
  2. In the upper-right of the screen, choose Manage.
  3. Select your app from the list.
  4. In the navigation pane, choose Access.
  5. Choose Event Subscriptions.
  6. Choose Add Events and verify you have selected the RTMS events for your product.
  7. 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 TypeRTMS SupportNotes
Basic (Free)Not supportedRTMS webhooks will not fire; API calls will fail with error 2310
ProSupportedRequires Zoom Developer Pack subscription
BusinessSupportedRequires Zoom Developer Pack subscription
EnterpriseSupportedRequires Zoom Developer Pack subscription

Important

All paid plans require an active Zoom Developer Pack subscription to use RTMS. For pricing options, see Developer pricing.