# Failed to execute ‘setLocalDescription’ on ‘RTCPeerConnection

**URL:** <https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975>\
**Category:** mediasoup-demo\
**Created:** [May 28, 2026, 10:27am UTC](https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975 "2026-05-28T10:27:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [May 28, 2026, 10:27am UTC](https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975/1 "2026-05-28T10:27:36Z")

</div>

Chrome is up to date: Version `148.0.7778.216 (Official Build) (x86_64)`

```js
mediasoup-demo:ERROR:RoomClient enableWebcam() | failed:InvalidAccessError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': Failed to set local offer sdp: A BUNDLE group contains a codec collision for header extension id=5. The id must be the same across all bundled media descriptions +0ms

```

 ![Screenshot 2026-05-28 at 12.24.20](https://global.discourse-cdn.com/free1/uploads/mediasoup/original/2X/8/8a36a439116658070cd3ee92f0d914745b32bf6a.jpeg)

---

<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:** [May 28, 2026, 10:41am UTC](https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975/2 "2026-05-28T10:41:49Z")

</div>

Please check mediasoup-client issues in GH, even the closed ones. This is a regression in Chrome that will be fixed soon and in fact it doesn’t fail in Canary which is \> 149.

- Can you test in Canary?
- Please paste the exact query params you are using in the URL of the demo.

---

<div class="post-metadata">

**Author:** ![miroslavpejic85](https://yyz2.discourse-cdn.com/free1/user_avatar/mediasoup.discourse.group/miroslavpejic85/32/1044_2.png) [@miroslavpejic85](https://mediasoup.discourse.group/u/miroslavpejic85)\
**Post date:** [May 28, 2026, 10:48am UTC](https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975/3 "2026-05-28T10:48:20Z")

</div>

Here the fix on my side

```auto
fix(client): drop absCaptureTime header extension to fix Chrome 148+ BUNDLE collision

Setting `headerExtensionOptions.absCaptureTime: true` on producer params
causes mediasoup-client to munge the local SDP and insert the
`abs-capture-time` RTP header extension. Chrome 148+ rejects such SDPs
with:

  Failed to execute 'setLocalDescription' on 'RTCPeerConnection':
  Failed to set local offer sdp: A BUNDLE group contains a codec
  collision for header extension id=5. The id must be the same across
  all bundled media descriptions

Removing the option avoids the SDP munging and restores joining rooms
on the latest Chrome. The extension is non-essential (capture-time
stats only) and has no functional impact on calls.

```

Refs: [`pc.setLocalDescription()` fails in Canary 149 with "Codec collision" error due to "abs-capture-time" extension · Issue #373 · versatica/mediasoup-client · GitHub](https://github.com/versatica/mediasoup-client/issues/373)  
Refs: [WebRTC](https://issues.webrtc.org/issues/503013383)

So Chrome bug, thank you!

---

<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:** [May 28, 2026, 11:08am UTC](https://mediasoup.discourse.group/t/failed-to-execute-setlocaldescription-on-rtcpeerconnection/6975/4 "2026-05-28T11:08:51Z")

</div>

Yes. mediasoup-demo workaround pushed now:

> <https://github.com/versatica/mediasoup-demo/commit/2fb81fb1e9a4708e3dad2ae87bb2fcf2eaa929d4>
