Skip to content

Conversation

@lukehb
Copy link
Contributor

@lukehb lukehb commented Oct 2, 2025

Relevant components:

  • Frontend library

Problem statement:

As a result of #694 sometimes Firefox was unable to connect. It would error with uncaught (in promise) DOMException: Cannot set ICE candidate for level=<Nothing> mid=: No such transceiver.

Solution

This PR patches the previous fix by hard coding the sdpMLineIndex to 0 which resolves the issue on Firefox and maintains working connectivity on the other browsers. This change means we assume:

  1. Bundle is being used for WebRTC media
  2. The master media line of the bundle is in index 0.

Both of these assumptions hold for all versions of Pixel Streaming 1 and 2 to date.

Documentation

N/A - This is very implementation specific, but this PR should serve as a good record.

Test Plan and Compatibility

Tested:

Chrome + AWS
Chrome + TailScale
Firefox + AWS
FireFox + TailScale
Safari + AWS
Safari + TailScale

All these combinations were able to stream correctly.

@lukehb lukehb added auto-backport Used to specify we want a PR to auto backport to a branch, must be paired with auto-backport-to-UEX. auto-backport-to-UE5.6 auto-backport-to-UE5.7 labels Oct 2, 2025
@changeset-bot
Copy link

changeset-bot bot commented Oct 2, 2025

🦋 Changeset detected

Latest commit: 39d76ab

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@epicgames-ps/lib-pixelstreamingfrontend-ue5.7 Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@lukehb lukehb merged commit 7790838 into master Oct 2, 2025
11 checks passed
github-actions bot pushed a commit that referenced this pull request Oct 2, 2025
github-actions bot pushed a commit that referenced this pull request Oct 2, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Oct 2, 2025

💚 All backports created successfully

Status Branch Result
UE5.6
UE5.7

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation and see the Github Action logs for details

lukehb added a commit that referenced this pull request Oct 2, 2025
…ripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
@lukehb lukehb deleted the ff-sdpmline branch October 2, 2025 03:22
@lukehb
Copy link
Contributor Author

lukehb commented Oct 2, 2025

If this turns out to be an issue because bundle master is no longer 0 we can get bundle master using something like:

const bundleMasterMid = sdp.match(/^a=group:BUNDLE (.*)$/m)[1].split(" ")[0];

Then we can just always add a candidate with that mid, the immediately after, add another candidate with whatever the real mid was. It is a little wasteful in terms of adding known failing ice candidates, but it should fix the issue.

lukehb added a commit that referenced this pull request Oct 2, 2025
…d are stripped. (#709) (#710)

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709)

(cherry picked from commit 7790838)

* Patch bump lib-pixelstreamingfrontend-ue5.6 version

Assume sdpMLineIndex is always 0 for bundle master media line to restore connectivity with Firefox after changes in PR#694.

---------

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
lukehb added a commit that referenced this pull request Oct 13, 2025
* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
lukehb added a commit that referenced this pull request Oct 23, 2025
* Bump markdown link checker version for security patch

#691

* Update link checker to permit 429 code from Github as valid

* Update user-agent in link checker action to try prevent 403 forbidden on some sites

* Update link checker to accept HTTP status 403 (forbidden)

* Remove broken link about eslint

* Modify README for mediasoup-sdp-bridge to remove broken link

Updated README to reflect fork status and removed badges.

* Update workflow triggers for markdown files in push and PR

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709)

* Bring 5.7 changes to master branch (docs + sdpMid fix) (#716)

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update copyright notice

* Update copyright notice in CONTRIBUTING.md

* Update copyright notice

* Update copyright in frontend/readme.md

* Delete .changeset/light-games-wonder.md

---------

Co-authored-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
mcottontensor added a commit that referenced this pull request Dec 8, 2025
* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

* Update RELEASE_VERSION

0.1.1

* Update 5.7 with docs and housekeeping changes (#718)

* Bump markdown link checker version for security patch

#691

* Update link checker to permit 429 code from Github as valid

* Update user-agent in link checker action to try prevent 403 forbidden on some sites

* Update link checker to accept HTTP status 403 (forbidden)

* Remove broken link about eslint

* Modify README for mediasoup-sdp-bridge to remove broken link

Updated README to reflect fork status and removed badges.

* Update workflow triggers for markdown files in push and PR

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709)

* Bring 5.7 changes to master branch (docs + sdpMid fix) (#716)

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update copyright notice

* Update copyright notice in CONTRIBUTING.md

* Update copyright notice

* Update copyright in frontend/readme.md

* Delete .changeset/light-games-wonder.md

---------

Co-authored-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Cut new GH release for 5.7 - 0.1.2

* [UE5.7] Exposed playerid (#728) (#729)

* Exposed playerid (#728)

(cherry picked from commit 6733632)

* Expose player id and improve signalling library

Add ability to access player id on the frontend and remove player id stripping from the signalling library. This change backports the 'Exposed playerid' feature.

---------

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#730)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [UE5.7] Make this.peerConnection.getStats() access safe (#719) (#731)

* Update PeerConnectionController.ts (#719)

Fix for throwing error when peerConnection is not defined

(cherry picked from commit 9a5cd8e)

* Create polite-knives-hang.md

---------

Co-authored-by: fabian-rehm <fabian.rehm@porter.de>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* [UE5.7] SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe (#734) (#737)

* SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe (#734)

* fix: SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe

fixes: #722

* Update Frontend/library/src/WebXR/WebXRController.ts

* Update Frontend/library/src/WebXR/WebXRController.ts

---------

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
(cherry picked from commit cc8c923)

* Fix iframe streaming issue due to SecurityError

---------

Co-authored-by: Leon Radley <leon@radley.se>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#732)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Updating npm publish for new npmjs trusted publisher stuff. (#744)

* Trying to figure out OIDC

* Trying to debug OIDC issues.

* Duplicating id-token

* Still debugging OIDC issues. Adding debugging steps.

* Debugging OIDC.

* Fix OIDC (#745)

* Updating npm to allow oidc auth

* bumping common patch version to test publish.

* Fixing up package info.

* Fix link descriptions for UE 5.7 (#743) (#747)

(cherry picked from commit ff2b1bf)

Co-authored-by: Flo Edelmann <git@flo-edelmann.de>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
Co-authored-by: fabian-rehm <fabian.rehm@porter.de>
Co-authored-by: Leon Radley <leon@radley.se>
Co-authored-by: Flo Edelmann <git@flo-edelmann.de>
mcottontensor added a commit that referenced this pull request Dec 8, 2025
* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

* Update RELEASE_VERSION

0.1.1

* Update 5.7 with docs and housekeeping changes (#718)

* Bump markdown link checker version for security patch

#691

* Update link checker to permit 429 code from Github as valid

* Update user-agent in link checker action to try prevent 403 forbidden on some sites

* Update link checker to accept HTTP status 403 (forbidden)

* Remove broken link about eslint

* Modify README for mediasoup-sdp-bridge to remove broken link

Updated README to reflect fork status and removed badges.

* Update workflow triggers for markdown files in push and PR

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709)

* Bring 5.7 changes to master branch (docs + sdpMid fix) (#716)

* Fix: Firefox connectivity issues when sdpMLineIndex and sdpMid are stripped. (#709) (#711)

(cherry picked from commit 7790838)

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#712)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update signalling library readme, patch bump

* Update readme for ui library, bump patch version

* Update frontend docs, patch bump

* Update common readme, patch bump

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update copyright notice

* Update copyright notice in CONTRIBUTING.md

* Update copyright notice

* Update copyright in frontend/readme.md

* Delete .changeset/light-games-wonder.md

---------

Co-authored-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Cut new GH release for 5.7 - 0.1.2

* [UE5.7] Exposed playerid (#728) (#729)

* Exposed playerid (#728)

(cherry picked from commit 6733632)

* Expose player id and improve signalling library

Add ability to access player id on the frontend and remove player id stripping from the signalling library. This change backports the 'Exposed playerid' feature.

---------

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#730)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* [UE5.7] Make this.peerConnection.getStats() access safe (#719) (#731)

* Update PeerConnectionController.ts (#719)

Fix for throwing error when peerConnection is not defined

(cherry picked from commit 9a5cd8e)

* Create polite-knives-hang.md

---------

Co-authored-by: fabian-rehm <fabian.rehm@porter.de>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* [UE5.7] SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe (#734) (#737)

* SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe (#734)

* fix: SecurityError: Failed to execute 'isSessionSupported' on 'XRSystem' when in iframe

fixes: #722

* Update Frontend/library/src/WebXR/WebXRController.ts

* Update Frontend/library/src/WebXR/WebXRController.ts

---------

Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
(cherry picked from commit cc8c923)

* Fix iframe streaming issue due to SecurityError

---------

Co-authored-by: Leon Radley <leon@radley.se>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Updated NPM changelogs (#732)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Updating npm publish for new npmjs trusted publisher stuff. (#744)

* Trying to figure out OIDC

* Trying to debug OIDC issues.

* Duplicating id-token

* Still debugging OIDC issues. Adding debugging steps.

* Debugging OIDC.

* Fix OIDC (#745)

* Updating npm to allow oidc auth

* bumping common patch version to test publish.

* Fixing up package info.

* Fix link descriptions for UE 5.7 (#743) (#747)

(cherry picked from commit ff2b1bf)

Co-authored-by: Flo Edelmann <git@flo-edelmann.de>

* Updated NPM changelogs (#749)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fixing repo url.

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
Co-authored-by: fabian-rehm <fabian.rehm@porter.de>
Co-authored-by: Leon Radley <leon@radley.se>
Co-authored-by: Flo Edelmann <git@flo-edelmann.de>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-backport Used to specify we want a PR to auto backport to a branch, must be paired with auto-backport-to-UEX. auto-backport-to-UE5.6 auto-backport-to-UE5.7

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants