# Getting Error while using React Native Video SDK "@zoom/react-native-videosdk": "^1.12.5",

**URL:** <https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425>\
**Category:** Video SDK\
**Created:** [September 13, 2024, 1:46pm UTC](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425 "2024-09-13T13:46:58Z")\
**Posts on this page:** 4\
**Page:** 2

<div class="post-metadata">

**Author:** ![shreenivas.kokil](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shreenivas.kokil/32/58698_2.png) [@shreenivas.kokil](https://devforum.zoom.us/u/shreenivas.kokil)\
**Post date:** [September 25, 2024, 5:22am UTC](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425/21 "2024-09-25T05:22:59Z")

</div>

@ekaansh.zoom sure , i will share code snippet . when we click on leave session app is crashing!

import {useRef, useState} from ‘react’  
import {  
Alert,  
Button,  
EmitterSubscription,  
SafeAreaView,  
StyleSheet,  
Text,  
View,  
} from ‘react-native’  
import {  
EventType,  
VideoAspect,  
ZoomVideoSdkProvider,  
ZoomVideoSdkUser,  
ZoomView,  
useZoom,  
} from ‘@zoom/react-native-videosdk’  
import React from ‘react’  
import {config} from ‘…/…/app-base/zoomConfig’  
import generateJwt from ‘…/…/helper/zoomToken’

const ZoomCall = () =\> {  
const zoom = useZoom()  
const listeners = useRef\<EmitterSubscription\>()  
const [users, setUsersInSession] = useState\<ZoomVideoSdkUser\>()  
const [isInSession, setIsInSession] = useState(false)  
const [isAudioMuted, setIsAudioMuted] = useState(true)  
const [isVideoMuted, setIsVideoMuted] = useState(true)

const join = async () =\> {  
/\* Disclaimer: JWT should be generated from your server \*/  
const token = await generateJwt(config.sessionName, config.roleType)  
console.log(‘token’, token)

```
const sessionJoin = zoom.addListener(EventType.onSessionJoin, async () => {
  const mySelf = new ZoomVideoSdkUser(await zoom.session.getMySelf())
  const remoteUsers = await zoom.session.getRemoteUsers()
  setUsersInSession([mySelf, ...remoteUsers])
  setIsInSession(true)
})
listeners.current.push(sessionJoin)

const userJoin = zoom.addListener(EventType.onUserJoin, async (event) => {
  const {remoteUsers} = event
  const mySelf = await zoom.session.getMySelf()
  const remote = remoteUsers.map((user) => new ZoomVideoSdkUser(user))
  setUsersInSession([mySelf, ...remote])
})
listeners.current.push(userJoin)

const userLeave = zoom.addListener(EventType.onUserLeave, async (event) => {
  const {remoteUsers} = event
  const mySelf = await zoom.session.getMySelf()
  const remote = remoteUsers.map((user) => new ZoomVideoSdkUser(user))
  setUsersInSession([mySelf, ...remote])
})
listeners.current.push(userLeave)

const userVideo = zoom.addListener(
  EventType.onUserVideoStatusChanged,
  async (event) => {
    const {changedUsers} = event
    const mySelf = new ZoomVideoSdkUser(await zoom.session.getMySelf())
    changedUsers.find((user) => user.userId === mySelf.userId) &&
      mySelf.videoStatus.isOn().then((on) => setIsVideoMuted(!on))
  },
)
listeners.current.push(userVideo)

const userAudio = zoom.addListener(
  EventType.onUserAudioStatusChanged,
  async (event) => {
    const {changedUsers} = event
    const mySelf = new ZoomVideoSdkUser(await zoom.session.getMySelf())
    changedUsers.find((user) => user.userId === mySelf.userId) &&
      mySelf.audioStatus.isMuted().then((muted) => setIsAudioMuted(muted))
  },
)
listeners.current.push(userAudio)

const sessionLeave = zoom.addListener(EventType.onSessionLeave, () => {
  setIsInSession(false)
  setUsersInSession([])
  sessionLeave.remove()
})

await zoom
  .joinSession({
    sessionName: config.sessionName,
    sessionPassword: config.sessionPassword,
    token: token,
    userName: config.displayName,
    audioOptions: {
      connect: true,
      mute: true,
      autoAdjustSpeakerVolume: false,
    },
    videoOptions: {localVideoOn: true},
    sessionIdleTimeoutMins: config.sessionIdleTimeoutMins,
  })
  .then((res: any) => {
    console.log('res', res)
  })
  .catch((e) => {
    console.log(e)
  })

```

}

const leaveSession = async () =\> {  
if (!isInSession) {  
console.log(‘Session already left.’)  
return  
}

```
try {
  zoom.leaveSession(false)

  if (listeners.current.length > 0) {
    listeners.current.forEach((listener) => {
      if (listener) {
        listener.remove()
      }
    })
  }

  listeners.current = []
  setIsInSession(false)
  setUsersInSession([])

  console.log('Left the session successfully and cleaned up listeners.')
} catch (e) {
  console.error('Error leaving session:', e.message || e)
  Alert.alert('Failed to leave the session')
}

```

}

return isInSession ? (  
  
{users.map((user) =\> (  
  
  
  
))}  
  
\<Button title=“Leave Session” color={‘#f01040’} onPress={leaveSession} /\>  
  
) : (  
  
Zoom Video SDK  
React Native Quickstart  
  
  
  
)  
}

const MuteButtons = ({  
isAudioMuted,  
isVideoMuted,  
}: {  
isAudioMuted: boolean  
isVideoMuted: boolean  
}) =\> {  
const zoom = useZoom()  
const onPressAudio = async () =\> {  
const mySelf = await zoom.session.getMySelf()  
const muted = await mySelf.audioStatus.isMuted()  
muted  
? await zoom.audioHelper.unmuteAudio(mySelf.userId)  
: await zoom.audioHelper.muteAudio(mySelf.userId)  
}

const onPressVideo = async () =\> {  
const mySelf = await zoom.session.getMySelf()  
const videoOn = await mySelf.videoStatus.isOn()  
videoOn  
? await zoom.videoHelper.stopVideo()  
: await zoom.videoHelper.startVideo()  
}  
return (  
  
\<Button  
title={isAudioMuted ? ‘Unmute Audio’ : ‘Mute Audio’}  
onPress={onPressAudio}  
/\>  
  
\<Button  
title={isVideoMuted ? ‘Unmute Video’ : ‘Mute Video’}  
onPress={onPressVideo}  
/\>  
  
)  
}

export default ZoomCall

export const styles = StyleSheet.create({  
safe: {  
width: ‘90%’,  
alignSelf: ‘center’,  
margin: 16,  
flex: 1,  
justifyContent: ‘center’,  
},  
container: {  
width: ‘100%’,  
alignSelf: ‘center’,  
height: ‘100%’,  
flex: 1,  
justifyContent: ‘center’,  
},  
spacer: {  
height: 16,  
width: 8,  
},  
heading: {  
fontSize: 24,  
fontWeight: ‘bold’,  
textAlign: ‘center’,  
},  
button: {  
alignItems: ‘center’,  
justifyContent: ‘center’,  
paddingVertical: 12,  
paddingHorizontal: 32,  
borderRadius: 4,  
elevation: 3,  
},  
buttonHolder: {  
flexDirection: ‘row’,  
justifyContent: ‘center’,  
margin: 8,  
},  
text: {  
fontSize: 16,  
lineHeight: 21,  
fontWeight: ‘bold’,  
letterSpacing: 0.25,  
color: ‘white’,  
},  
})

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [September 25, 2024, 12:56pm UTC](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425/22 "2024-09-25T12:56:52Z")

</div>

What’s the version of the SDK you’re using? Can you try updating to `v1.12.10`? I’m not able to reproduce the error with the quickstart I shared with you, it’s using the same code for `leaveSession`.

---

<div class="post-metadata">

**Author:** ![shreenivas.kokil](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shreenivas.kokil/32/58698_2.png) [@shreenivas.kokil](https://devforum.zoom.us/u/shreenivas.kokil)\
**Post date:** [September 27, 2024, 11:44am UTC](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425/23 "2024-09-27T11:44:20Z")

</div>

ok i will update and let you know!

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [October 8, 2024, 10:11am UTC](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425/24 "2024-10-08T10:11:07Z")

</div>

Closed on October 8, 2024, 10:11am UTC



[Previous page](https://devforum.zoom.us/t/getting-error-while-using-react-native-video-sdk-zoom-react-native-videosdk-1-12-5/117425.md?page=1)
