Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
PJ483
New Member

Power BI Report Server - An existing connection was forcibly closed by the remote host

We have a couple of servers running Power BI Report Server (May 2023) which are reporting the following error when accessing "Power BI Reports" but not for "Paginated Reports", which are working fine:

 

2023-09-13 19:58:06.7410|ERROR|70|OData exception occurred: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest, Boolean renegotiation)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.ReportingServices.Portal.ODataWebApi.Utils.PbixReportHelper.ShouldReShred(PowerBIReport entity, Uri basePortalUrl, ILogger logger, IPrincipal userPrincipal, String reportServerHostName)
at Microsoft.ReportingServices.Portal.ODataWebApi.Common.CatalogItemControllerHelper`1.GetItem(String key)
at Microsoft.ReportingServices.Portal.ODataWebApi.Common.CatalogItemControllerHelper`1.GetAllowedActions(String Id)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext().| RequestID = s_b5bd1649-a27a-45d5-a23c-29134e2cc2c9

For info, when looking at a Fiddler session, I noted that the "AllowedActions" call which is called before the failing report is also erroring. This call is:

 

https://webserver/Reports/api/v2.0/CatalogItems(Path=%27/Folder/Subfolder/Report%20Name%27)/AllowedA...

 

and it returns:

 

{
"error": {
"code": "0",
"message": ""
}
}

 

The only recent changes to the server relate to enabling HTTPS on the co-hosted MDS website, although I'm unsure if that's related since that runs under IIS.

 

Does anyone have any ideas? Thanks.

 

Server: Windows Server 2019
Database: SQL Server 2019
Power BI Server: May 2023

1 ACCEPTED SOLUTION
PJ483
New Member

This turned out to be a niche problem but I'll post the solution here in case anyone else is caught out by it.

In the Report Server Configuration Manager, a colleague (no it wasn't me!) changed the "Report Server HTTPS Binding" from:

  • IP Address: (All IPv4)

to:

  • IP Address: [default IP address for the server] - note that it has 2 (one for SSRS HTTPS and one for IIS HTTPS)

This is what caused the problem. We don't know why SSRS would behave in this why by restricting the IP Address binding but clearly it does. Setting it back to "(All IPv4)" fixed the issue immediately. If anyone has any insight, I'd love to hear it.

View solution in original post

1 REPLY 1
PJ483
New Member

This turned out to be a niche problem but I'll post the solution here in case anyone else is caught out by it.

In the Report Server Configuration Manager, a colleague (no it wasn't me!) changed the "Report Server HTTPS Binding" from:

  • IP Address: (All IPv4)

to:

  • IP Address: [default IP address for the server] - note that it has 2 (one for SSRS HTTPS and one for IIS HTTPS)

This is what caused the problem. We don't know why SSRS would behave in this why by restricting the IP Address binding but clearly it does. Setting it back to "(All IPv4)" fixed the issue immediately. If anyone has any insight, I'd love to hear it.

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.