How to fix the error 'Authentication failed because the remote party has closed the transport stream'

Posted written by Paul Seal on March 14, 2019 .NET Framework

You may get this error when trying to call an external API. This error is related to the Security Protocol Type.


It is most likely caused by your application's default security protocol type being set too low.

A lot of external APIs now expect requests using TLS 1.2 or above.

You can easily set the SecurityProtocol in your application by adding this line:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

This can be added just before you call the api, or it can even be added in the application start method. See this post for an example.

If you don't have all of these options available to you, maybe you are running a .NET 4.0 application, you can also set it like this:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)48 | (SecurityProtocolType)192 |
(SecurityProtocolType)768 | (SecurityProtocolType)3072;

You also don't have to include them all, you can take out the ones you don't need.

I hope this helps.