# replaceTrack and InvalidModificationError

**URL:** <https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72>\
**Category:** Issues developing apps\
**Tags:** v2\
**Created:** [January 17, 2020, 10:36pm UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72 "2020-01-17T22:36:56Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![inqz](https://avatars.discourse-cdn.com/v4/letter/i/a9a28c/32.png) [@inqz](https://openvidu.discourse.group/u/inqz)\
**Post date:** [January 17, 2020, 10:36pm UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72/1 "2020-01-17T22:36:56Z")

</div>

Hello.  
I want to switch video source on the fly, for screensharing. I read [https://openvidu.io/docs/advanced-features/switch-camera/](https://openvidu.io/docs/advanced-features/switch-camera/) and try to use navigator.mediaDevices.getDisplayMedia(), but replaceTrack function got exception InvalidModificationError. Can you explain what i need to do next? I do not understand. Reset with reload or initPublisher is not an option. Thanks.

---

<div class="post-metadata">

**Author:** ![inqz](https://avatars.discourse-cdn.com/v4/letter/i/a9a28c/32.png) [@inqz](https://openvidu.discourse.group/u/inqz)\
**Post date:** [January 20, 2020, 12:54am UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72/2 "2020-01-20T00:54:50Z")

</div>

Ok. My bad. I have been replaced audio track with video track(from the example in doc, where getSenders()[0] return audio. But i changed it to [1](get video sender), now no exceptions, but video not changed. replaceTrack function returned undefined instead track.

---

<div class="post-metadata">

**Author:** ![blazeag](https://avatars.discourse-cdn.com/v4/letter/b/a698b9/32.png) [@blazeag](https://openvidu.discourse.group/u/blazeag)\
**Post date:** [March 24, 2020, 10:20am UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72/3 "2020-03-24T10:20:33Z")

</div>

No luck here for the same problem. Did you get it done then?

---

<div class="post-metadata">

**Author:** ![inqz](https://avatars.discourse-cdn.com/v4/letter/i/a9a28c/32.png) [@inqz](https://openvidu.discourse.group/u/inqz)\
**Post date:** [March 24, 2020, 12:31pm UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72/4 "2020-03-24T12:31:58Z")

</div>

it works well with 2.12.0 version now. I think in 2.11.0 its broken.

---

<div class="post-metadata">

**Author:** ![blazeag](https://avatars.discourse-cdn.com/v4/letter/b/a698b9/32.png) [@blazeag](https://openvidu.discourse.group/u/blazeag)\
**Post date:** [March 24, 2020, 1:26pm UTC](https://openvidu.discourse.group/t/replacetrack-and-invalidmodificationerror/72/5 "2020-03-24T13:26:31Z")

</div>

You are right. Tried with 2.12.0 and now it runs correctly. Working code:

```
// Switch to screen share
OV.getUserMedia({audioSource: false, videoSource: 'screen'})
.then(function (media) {
    var track = media.getVideoTracks()[0];
    publisher.replaceTrack(track);
});

// Switch back to camera
OV.getUserMedia({audio: false, video: true})
.then(function(media) {
    var track = media.getVideoTracks()[0];
    publisher.replaceTrack(track);
});
```
