Name already in use

Name already in use

The W3C ECMAScript API defines an event to handle issues during the ICE gathering process. But should your application handles these errors ? And if yes, what to do?

Internet surfing has become essential to our personal, social, and professional lives. We must ensure for ourselves hassle-free internet surfing. Megapersonal Error 701 stops one from accessing their personal information and may also shut down one’s system completely.

Megaperonal error is the type of malfunction you experience when you attempt to access your private data on the internet. This error also puts you at a halt for surfing the internet adequately.

This blog will enable you to know different reasons for the occurrence of this error. Also, we will try to provide you with solutions for this problem so you can resume smooth and stress-free internet surfing.

Status codes and their use in gRPC

gRPC uses a set of well defined status codes as part of the RPC API. These
statuses are defined as such:

All RPCs started at a client return a status object composed of an integer
code and a string message. The server-side can choose the status it
returns for a given RPC.

The gRPC client and server-side implementations may also generate and
return status on their own when errors happen. Only a subset of
the pre-defined status codes are generated by the gRPC libraries. This
allows applications to be sure that any other code it sees was actually
returned by the application (although it is also possible for the
server-side to return one of the codes generated by the gRPC libraries).

Applications that may wish to retry failed RPCs must decide which status codes on which to retry. As shown in the table above, the gRPC library can generate the same status code for different cases. Server applications can also return those same status codes. Therefore, there is no fixed list of status codes on which it is appropriate to retry in all applications. As a result, individual applications must make their own determination as to which status codes should cause an RPC to be retried.

Below mentioned are some possible solutions to this problem:

Malware Scanning

Name already in use

Freeing Up of System Drive

The megapersonal error code 701 may also be encountered if there is low storage space on your system. If such is the case, this error can easily be fixed by freeing up extra disk space. Below mentioned is a step-by-step guide on how to free up disk space on your computer/PC:

Читайте также:  Как называется ошибка 0100800003?

Name already in use

Name already in use

Repairing of Corrupted Registry

Detailed steps are mentioned below to help you learn how to clean boot your system:

Name already in use

Get Support

Suppose none of the above methods work to fix the Megapersonal error 701 error; you can also try to take your laptop and get it checked by a professional technician. They will be able to identify any issue or problem with your laptop and fix it in no time.

If this error occurs, you can face many problems such as system crashes, BSODs, or system unresponsiveness. Below mentioned are some reasons why you might be experiencing this error:

Some other documents describe ICE errors such as:

When dealing with mobility, ICE errors are described in document Mobility with Traversal Using Relays around NAT (TURN), which describes a new error code in section 3.4 New STUN Error Response Code

The document Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations describes lists some new error codes in section 6.3 New STUN Error Codes

The document Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal, describes an additional new ICE error code when in that situation, in section 16.2 New Error-Response Codes

In term of ECMAScript APIs, the W3C Recommendation document WebRTC 1.0: Real Time Communication Between Browsers gives the JavaScript definition of the ICE error as well as the definition of the event to listen to detect these errors

The icecandidateerror event and the RTCPeerConnectionEceErrorEvent interface are described in section 4.8.3 RTCPeerConnectionIceErrorEvent

The value of the errorCode attribute points to the IANA document that summarizes these codes STUN Error Codes. For sure, the ECMAScript API only transmits the ICE errors coming from the STUN/TURN servers.

But additionally, the W3C defines a new error code when no host candidate can reach the server:

Note: That specific event is generated by the browser not by the STUN & TURN servers

When dealing with an STUN server, ICE errors are documented in the IETF Proposed Standard document: Session Traversal Utilities for NAT (STUN). Error codes are described in section 14.8 ERROR-CODE

Note: This document obsoletes the RFC 5389

Did I make a mistake ?

During the ICE candidate gathering process an error could occur when your browser is exchanging information with the STUN and TURN servers.

host lookup received error

Even if your JavaScript code is correct, your application needs to detect and to react to any errors during that step that can be due mainly to the network environment or the servers them self.

Читайте также:  Как определить код ошибки на ваз 2112

For that the RTCPeerConnection fires the event onicecandidateerror.

Note: The description of the ICE errors are defined in several documents. But basically, STUN error code are listed in that main document Session Traversal Utilities for NAT (STUN) Parameters that is the umbrella of all other documents.

But in that document, additional codes are defined that can still be fired by STUN & TURN servers.

Now, that we know the possible values (be careful, new values could be defined), we need to listen to the icecandidateerror event in our JavaScript application to catch these errors.

Deducing from the errors listed previously, 2 main categories emerge:

Here is what you can add to your code to separate these 2 kinds of errors

But then what ? What to do once the application catch an ICE error ? 🙂

Unfortunately, listening to the event icegatheringstatechange does not help because once finished, the gathering state just moves to state complete which means that this step is finished.

The RTCPeerConnection offers the possibility to listen to the event iceconnectionstatechange. If a connection can be established between a candidate pair (which means a local candidate and a remote candidate), the state should move to connected or completed.

But the final assessment should be done by listening to the event connectionstatechange and by checking the state reached. If the connection is successful, state should be connected.

That said, ICE errors are very rare and uncommon in the majority of cases. When the STUN & TURN servers are up and correctly configured and when the application sends the correct URLs and credentials, it should work in 99% of the cases. So, as seen in the previous paragraph, your application could stay simple without having to handle these different events specifically. It’s better to invest on monitoring your STUN & TURN equipments to detect any crashes.

Only host candidates received

If we suppose that the STUN & TURN servers are accessible from the browser because they use common ports and protocols, the minimal case that needs to be handled correctly from the application side is when only host candidates have been gathered. Because it can affect the call if the participants are not on the same network.

2 main issues could be at the origin of this result:

In order to discard the first possibility and confirm possibly the second, a quick test can be done by using the WebRTC sample Tickle ICE. If more candidates appear, the conclusion could be that the problem is in your code and not with the configuration of the STUN & TURN servers.

Читайте также:  Не удается подключиться к сети интернет код ошибки 4201

If there is still only host candidates, you can have a look to the icecandidateerror to see if there are interesting information. Sadly, depending on the browser used, it will not help you to understand the issue.

So, finally, wa have to deal with that result: The browser only got host candidates and that’s all! So, the application has to deduce that the STUN & TURN servers have an issue.

Then when in that state, your application has the possibility to disable the call button and inform that the service is unavailable.

No relay candidates received

If you have configured a Coturn server, your application expects to receive srflx and relay candidates.

One case that can happens is if the TURN credentials are not the right ones. How can you detect that case ?

In fact, two things can help you to detect that case:

Then, as for the previous paragraph, this is up to your application to adapt.

Special case 701

That case is not easy to handle and understand but hopefully in some cases, impact is minor and don’t really avoid receiving the candidates.

First, as mentioned previously, that error is generated by the browser and at this time of writing only Chrome generates it.

As you can see, that error is issued in some different cases. In my case, I only received TURN host lookup received error which lets my application grabs relay and srflx candidates without problems in Chrome, Firefox and Safari. So it’s ok today and I hope this will continue to be the case.

Note: There is still an opened Github ticket in the Coturn repository limited to the case TURN allocate request timed out..

When dealing with a TURN server, these errors are document in the IETF Proposed Standard document: Traversal Using Relays around NAT (TURN) which is the Relay Extensions to Session Traversal Utilities for NAT (STUN). Error codes are described in section 19 STUN Error Response Codes

Note: This document obsoletes the RFC 5766

Conclusion

And you ?

How did you manage the ICE errors coming into your web application ? Did you take care about them or simply forget them ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *