Reputation: 1145
For the last three years, whenever I use WebRTC, somewhere or other I will be dogged by the following error:
ICE Failed, see about:webrtc for more details
The error seems to have pop up in a variety of places: If the network is turned off for either peer, causing a failure of WebRTC (this is to be expected); If an answer or offer SDP is created too soon after receiving one; And, seemingly, at random times during signalling for no particular reason.
Whenever this occurs and I can't explain it, I'll head over to about:webrtc and try to find my way through the errors, but since I don't have an idea of what I'm looking for (and there is no "ICE failed because of this thing"), I can never quite figure out what's wrong. As a result, I'm usually doomed to hit-and-miss testing my code.
Obviously, this isn't the best way of doing it. So, my question is, how do I go about diagnosing ICE Failed
errors in WebRTC? What should I look for in about:webrtc
, what are common errors in my code that could cause this, and are there any diagnostic tools I should know about?
Upvotes: 5
Views: 2771
Reputation: 2386
I guess giving a full answer will be hard to do here.
The best approach is to look at chrome://webrtc-internals and follow the API trace. There's a detailed explanation about what to look for and what the common errors are here: http://testrtc.com/webrtc-api-trace/
Upvotes: 1
Reputation: 3623
In Chrome, the ICE failure state will be reached if all connections have timed out, not receiving a successful STUN response within 15 seconds.
There are a lot of ICE debug messages in the native log: https://webrtc.org/native-code/logging/
But these log statements would be difficult to interpret without being familiar with the code. If you believe ICE is reaching the failed state and it shouldn't, I'd recommend filing a bug and including the native log.
Upvotes: 5