diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx index 68f2860ee72c96996710e8e0fd64a210378cebaa..59674e4eee28e966b746e0f4c2ec037a97b51e64 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx @@ -237,8 +237,6 @@ class VideoProvider extends Component { if (this.sharedWebcam) { this.unshareWebcam(); } - // Notify user that the SFU component has gone offline - this.notifyError(intl.formatMessage(intlSFUErrors[2001])); this.setState({ socketOpen: false }); } @@ -438,11 +436,6 @@ class VideoProvider extends Component { const { meetingId, sessionToken, voiceBridge } = this.props; let iceServers = []; - // Check if there's connectivity to the SFU component - if (!this.connectedToMediaServer()) { - return this._webRTCOnError(2001, id, shareWebcam); - } - // Check if the peer is already being processed if (this.webRtcPeers[id]) { return; @@ -559,7 +552,15 @@ class VideoProvider extends Component { } _webRTCOnError(error, id) { - const { intl } = this.props; + const { intl, userId } = this.props; + + // We only display SFU connection errors to sharers, because it's guaranteed + // they should be connected. Viewers aren't connected synchronously related + // to the createWebRTCPeer procedure, so the error is ignored. If the connection + // closes unexpectedly, this error is deplayed globally in the onWsClose catch + if (error === 2001 && userId !== id) { + return; + } this.logger('error', ' WebRTC peerObj create error', id); const errorMessage = intlClientErrors[error.name]