This may very well be one of the most annoying errors ever and there may be several causes to it. The cause is as usual probably described in the exception details.
In this case I was making HTTP calls to a service behind newly created LetsEncrypt SSL certificates and very well I could find a TlsStream error in the details
System.Net.TlsStream.EndWrite(IAsyncResult asyncResult)
This made me suspect that my application was trying to call the service using an unsupported SSL-standard. The solution was to ensure a better security protocol
I.e. insert the code below somewhere in your pipeline, like global.asax or startup.cs
System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12;
The exception
(For bot searchability)
An existing connection was forcibly closed by the remote host Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [SocketException (0x2746): An existing connection was forcibly closed by the remote host] System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) +91 System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) +49 [IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.] System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) +300 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) +180 [WebException: The underlying connection was closed: An unexpected error occurred on a send.] System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) +819 System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) +86 [HttpRequestException: An error occurred while sending the request.] System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 System.Net.Http.d__58.MoveNext() +1278 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.IdentityModel.Protocols. d__8.MoveNext() +702 [IOException: IDX20804: Unable to retrieve document from: '[PII is hidden]'.] Microsoft.IdentityModel.Protocols. d__8.MoveNext() +1167 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.IdentityModel.Protocols.OpenIdConnect. d__3.MoveNext() +391 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.IdentityModel.Protocols. d__24.MoveNext() +865 [InvalidOperationException: IDX20803: Unable to obtain configuration from: '[PII is hidden]'.] Microsoft.IdentityModel.Protocols. d__24.MoveNext() +1570 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.OpenIdConnect. d__c.MoveNext() +724 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.Infrastructure. d__b.MoveNext() +376 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.Infrastructure. d__8.MoveNext() +476 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.Infrastructure. d__5.MoveNext() +215 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.Infrastructure. d__0.MoveNext() +968 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Security.Infrastructure. d__0.MoveNext() +768 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline. d__5.MoveNext() +197 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +62 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline. d__2.MoveNext() +184 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() +32 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar) +118 System.Web.AsyncEventExecutionStep.InvokeEndHandler(IAsyncResult ar) +225 System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +162
Cheers