Known Issues and Workarounds
This document lists known issues that you might encounter when using the Amazon IVS real-time streaming Web broadcast SDK and suggests potential workarounds.
-
When closing browser tabs or exiting browsers without calling
stage.leave()
, users can still appear in the session with a frozen frame or black screen for up to 10 seconds.Workaround: None.
-
Safari sessions intermittently appear with a black screen to users joining after a session has begun.
Workaround: Refresh the browser and reconnect the session.
-
Safari does not recover gracefully from switching networks.
Workaround: Refresh the browser and reconnect the session.
-
The developer console repeats an
Error: UnintentionalError at StageSocket.onClose
error.Workaround: Only one stage can be created per participant token. This error occurs when more than one
Stage
instance is created with the same participant token, regardless of whether the instance is on one device or multiple devices. -
You may have trouble maintaining a
StageParticipantPublishState.PUBLISHED
state and may receive repeatedStageParticipantPublishState.ATTEMPTING_PUBLISH
states when listening to theStageEvents.STAGE_PARTICIPANT_PUBLISH_STATE_CHANGED
event.Workaround: Constrain video resolution to 720p when invoking
getUserMedia
orgetDisplayMedia
. Specifically, yourgetUserMedia
andgetDisplayMedia
constraint values for width and height must not exceed 921600 (1280*720) when multiplied together.
Safari Limitations
- Denying a permissions prompt requires resetting the permission in Safari website settings at the OS level.
- Safari does not natively detect all devices as effectively as Firefox or Chrome. For example, OBS Virtual Camera does not get detected.
Firefox Limitations
- System permissions need to be enabled for Firefox to screen share. After enabling them, the user must restart Firefox for it to work correctly; otherwise, if permissions are perceived as blocked, the browser will throw a NotFoundError exception.
- The
getCapabilities
method is missing. This means users cannot get the media track's resolution or aspect ratio. See this bugzilla thread. - Several
AudioContext
properties are missing; e.g., latency and channel count. This could pose a problem for advanced users who want to manipulate the audio tracks. - Camera feeds from
getUserMedia
are restricted to a 4:3 aspect ratio on MacOS. See bugzilla thread 1 and bugzilla thread 2. - Audio capture is not supported with
getDisplayMedia
. See this bugzilla thread. - Framerate in screen capture is suboptimal (approximately 15fps?). See this bugzilla thread.
Mobile Web Limitations
-
getDisplayMedia screen sharing is unsupported on mobile devices.
Workaround: None.
-
Participant takes 15-30 seconds to leave when closing a browser without calling
leave()
.Workaround: Add a UI that encourages users to properly disconnect.
-
Backgrounding app causes publishing video to stop.
Workaround: Display a UI slate when the publisher is paused.
-
Video framerate drops for approximately 5 seconds after unmuting a camera on Android devices.
Workaround: None.
-
The video feed is stretched on rotation for iOS 16.0.
Workaround: Display a UI outlining this known OS issue.
-
Switching the audio-input device automatically switches the audio-output device.
Workaround: None.
-
Backgrounding the browser causes the publishing stream to go black and produce only audio.
Workaround: None. This is for security reasons.