MicrosoftEdge / MicrosoftEdge/WebView2Feedback
[Problem/Bug]: WebRTC ICE fails on Windows when no network interfaces are available (offline)
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 526
- Forks
- 67
- PR merge metrics
- No merged PRs in 30d
Description
What happened?
WebRTC peer connections fail to establish on Windows when the machine is offline (no network interfaces available), even for local loopback connections (127.0.0.1). This appears due to WebRTC's BasicNetworkManager::CreateNetworks() implementation on Windows only processing network adapters with IfOperStatusUp status.
When Windows is offline, all network adapters (including loopback) report IfOperStatusDown causing:
GetNetworks()returns empty listBasicPortAllocatorSession::DoAllocate()logs "Machine has no networks; no ports will be allocated"- No ICE candidates are gathered
- ICE connection state remains "new" indefinitely
- Local peer connections are impossible
Importance
Important. My app's user experience is significantly compromised.
Runtime Channel
Stable release (WebView2 Runtime)
Runtime Version
140.0.3485.54
Operating System
Windows 11
OS Version
Version 24H2 26100.4946
Repro steps
- Create a simple WebRTC peer connection between two WebView2 instances (or tabs)
- Disconnect all network connections (WiFi off, Ethernet unplugged, airplane mode on)
- Attempt to establish
RTCPeerConnectionwith local signaling - Observe: ICE gathering never completes, no candidates generated
Repros in Edge Browser
Yes, issue can be reproduced in the corresponding Edge version
Regression
No, this never worked
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked WebRTC BasicNetworkManager::CreateNetworks() implementation and trace how GetNetworks() reaches BasicPortAllocatorSession::DoAllocate(). Reproduce the two-peer-connection case on Windows with all network connections disabled, then verify whether loopback candidates are gathered and ICE leaves the new state.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- web-dev
- Domain
- audio-video-rtc, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100