# Exception in "new Device()" in mediasoup-client on react native

**URL:** <https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424>\
**Category:** mediasoup libraries\
**Created:** [July 12, 2020, 7:25am UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424 "2020-07-12T07:25:37Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Taha39](https://avatars.discourse-cdn.com/v4/letter/t/13edae/32.png) [@Taha39](https://mediasoup.discourse.group/u/Taha39)\
**Post date:** [July 12, 2020, 7:25am UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/1 "2020-07-12T07:25:37Z")

</div>

Hi Mediasoup Team,

I have installed mediasoup-client in react-native project on windows 10.

I have improted Device like:  
import { Device } from ‘mediasoup-client’;

then called:

try {  
device = new Device();  
} catch (error) {  
if (error.name === ‘UnsupportedError’) {  
console.error(‘browser not supported’);  
}  
}

Getting error.name === ‘UnsupportedError’ error.

Any help or hint will be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [July 12, 2020, 8:02am UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/2 "2020-07-12T08:02:42Z")

</div>

Have you actually read the docs?

> **[mediasoup :: React Native](https://mediasoup.org/documentation/v3/mediasoup-client/react-native/)**
>
> Cutting Edge WebRTC Video Conferencing

---

<div class="post-metadata">

**Author:** ![Taha39](https://avatars.discourse-cdn.com/v4/letter/t/13edae/32.png) [@Taha39](https://mediasoup.discourse.group/u/Taha39)\
**Post date:** [July 12, 2020, 8:51am UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/3 "2020-07-12T08:51:05Z")

</div>

I got it. Thanks, Great documentation.

---

<div class="post-metadata">

**Author:** ![ganesh1](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@ganesh1](https://mediasoup.discourse.group/u/ganesh1)\
**Post date:** [October 29, 2025, 12:40pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/4 "2025-10-29T12:40:17Z")

</div>

can you please help me to fix this error, i am getting this error mediasoupClient.registerGlobals is not a function  
my mediasoup version is “mediasoup-client”: “^3.17.1” and webrtc version is “react-native-webrtc”: “^124.0.7”,  
and this is my code

import {  
RTCPeerConnection,  
RTCIceCandidate,  
RTCSessionDescription,  
MediaStream,  
MediaStreamTrack,  
mediaDevices,  
} from ‘react-native-webrtc’;  
import \* as mediasoupClient from ‘mediasoup-client’;  
mediasoupClient.registerGlobals({  
RTCPeerConnection,  
RTCIceCandidate,  
RTCSessionDescription,  
MediaStream,  
MediaStreamTrack,  
mediaDevices,  
});

try {  
device = new mediasoupClient.Device();  
} catch (error) {  
if (error.name === ‘UnsupportedError’) {  
console.error(‘browser not supported’);  
}  
}

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [October 29, 2025, 1:45pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/5 "2025-10-29T13:45:42Z")

</div>

Why are you passing all those objects to registerGlobals() function?

---

<div class="post-metadata">

**Author:** ![ganesh1](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@ganesh1](https://mediasoup.discourse.group/u/ganesh1)\
**Post date:** [October 29, 2025, 3:45pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/6 "2025-10-29T15:45:28Z")

</div>

what is the correct way, do i just need to call this function without any parameters  
like this registerGlobals()  
but when i am adding this line i am getting this error mediasoupClient.registerGlobals is not a function

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [October 29, 2025, 3:53pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/7 "2025-10-29T15:53:36Z")

</div>

Check the signature of that function. Anyway, you will of course get the same error using it one way or another because those arguments are of course ignored.

Enable full debugs in mediasoup-client and show the full logs.

> **[mediasoup :: Debugging](https://mediasoup.org/documentation/v3/mediasoup-client/debugging/)**
>
> Cutting Edge WebRTC Video Conferencing

---

<div class="post-metadata">

**Author:** ![ganesh1](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@ganesh1](https://mediasoup.discourse.group/u/ganesh1)\
**Post date:** [October 29, 2025, 4:20pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/8 "2025-10-29T16:20:11Z")

</div>

> [@ibc](#):
>
> Enable full debugs in mediasoup-client and show the full logs.@

@ibc bro it is fixed now this is overview about issue and how i fixed that  
**Error** : mediasoup-client threw UnsupportedError: device not supported because it couldn’t detect React Native WebRTC support.

**Root Cause** : The library requires RTCRtpTransceiver to be globally available to identify React Native environment, but it wasn’t imported or set.

**Fix** : Added RTCRtpTransceiver import from react-native-webrtc and set it globally before importing mediasoup-client. This allows the library to properly detect React Native and use the ReactNative106 handler for WebRTC communication.

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [October 29, 2025, 5:10pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/9 "2025-10-29T17:10:51Z")

</div>

> [@ganesh1](#):
>
> Added RTCRtpTransceiver import from react-native-webrtc and set it globally before importing mediasoup-client.

Then you should report an issue in react-native-webrtc project or write a PR for it because this is a bug. `registerGlobals()` should also put RTCRtoTransceiver in global. Will you do it?

---

<div class="post-metadata">

**Author:** ![ibc](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/ibc/32/1540_2.png) [@ibc](https://mediasoup.discourse.group/u/ibc)\
**Post date:** [October 29, 2025, 9:13pm UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/10 "2025-10-29T21:13:55Z")

</div>

Not sure which version of react-native-webrtc you are using but RTCRtpTransceiver is already added to global when calling registerGlobal():

> <https://github.com/react-native-webrtc/react-native-webrtc/blob/5ba65ceb7c8c7609ce4a6de145fc66705436dd6e/src/index.ts#L83>

---

<div class="post-metadata">

**Author:** ![ganesh1](https://avatars.discourse-cdn.com/v4/letter/g/77aa72/32.png) [@ganesh1](https://mediasoup.discourse.group/u/ganesh1)\
**Post date:** [October 30, 2025, 5:59am UTC](https://mediasoup.discourse.group/t/exception-in-new-device-in-mediasoup-client-on-react-native/1424/11 "2025-10-30T05:59:41Z")

</div>

> [@ibc](#):
>
> l when calling registerGlobal():

actually i am using this version- webrtc”: “^124.0.7”,  
and mediasoup-client - “^3.17.1”
