Fix call disconnections by resolving ICE role conflicts#189
Merged
Conversation
Points to local Pion ice fork with 487 Role Conflict fix: github.com/bgardner8008/ice (branch: fix/handle-role-conflict-error-response) The fix handles STUN 487 Role Conflict error responses by: 1. Detecting the error in handleInboundErrorResponse 2. Switching ICE role (controlled ↔ controlling) 3. Retrying connectivity check with new role This implements RFC 8445 section 7.3.1.1 role conflict resolution. Related: MM-67602 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Update pion/webrtc from v4.1.3 to v4.2.6 to resolve transport v3/v4 conflict - Use pion/ice fork v4.2.0-role-conflict-fix with 487 Role Conflict fix - Use pion/interceptor fork v0.1.44-mm-mods with MM modifications and LoggerFactory support - Update pion/rtp from v1.8.26 to v1.10.1 - Remove pion/transport/v3 dependency (now only uses v4) The ice fork implements RFC 8445 section 7.3.1.1 role conflict resolution by detecting STUN 487 errors and switching ICE roles accordingly. Related: MM-67602 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…st override configurations
cpoile
reviewed
Feb 18, 2026
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses call disconnection problems encountered by users of Chrome 145 and Desktop 6.2. Disconnections are caused by unresolved ICE role conflicts. This is partially fixed by commit 2c04474e in Pion ICE which detects local role conflicts and either changes role or sends a role conflict error (487) response. However, Pion ICE does not implement handling role conflict error responses, which is the other half of the solution. This PR uses a fork of Pion ICE which includes handling of role conflict errors.
Additionally, this PR also includes updated versions of various Pion libraries.
Ticket Link
https://mattermost.atlassian.net/browse/MM-67602