Power BI Report Server: "An Error Has Occurred" or Power BI Report Server: "My Power BI Report is Coming up Blank" or Power BI Report Server: "401 and 403” Errors From Nowhere
The information below is an extremely brief summary of the information collected to solve the elusive problem. There are points I left out because I could not find supporting documentation and I did not want to release suppositions into the universe (why does an NTLM only issue impact a system using kerberos?). I also want to thank my friend Josh Corrick for staying the course and seeing this through to the end. See Josh's blog here: https://corrick.io/blog/
Without warning, our Power BI Report Server began having issues presenting Power BI reports. The reports would appear to render but would eventually return a blank report canvas. There was not an error presented and this was impacting all Power BI reports. An important note is the Power BI reports had worked as expected previously and no changes had been made to the report server such as upgrades or configuration changes.
Without warning, our Power BI Report Server began having issues presenting Power BI reports. The reports would appear to render but would eventually return a blank report canvas. There was not an error presented and this was impacting all Power BI reports. An important note is the Power BI reports had worked as expected previously and no changes had been made to the report server such as upgrades or configuration changes.
Subsequently, and
seemingly unrelated, an error notification was presented when clicking on the
ellipsis in the upper right hand corner of a report in the Report Manager and
selecting the subscribe option. There
were other similar issues but there's not point in listing all of the things
that went wrong. Research indicated the
issue occurred when there was an API call from the Report Manager to the Report
Server.
The were two
distinct error categories:
- Power BI Reports
An
empty report response.
The
corresponding log from the \Program Files\Microsoft Power BI Report
Server\PBIRS\LogFiles RSPortal Log:
|INFO|7|Sending response. Response
code NT AUTHORITY\ANONYMOUS LOGON 403
Notice
it is an INFO entry and not an error.
- Report Server Portal "An error has occurred"
|ERROR|6|OData
exception occurred: System.Net.WebException: The request failed with HTTP
status 401: Unauthorized.
|INFO|8|Sending
response. Response code <USERNAME> 500
Rather than go
through the hours of trouble shooting, searching, and general despair I will
state what the problem was not and then the present the solution.
The problem was not:
- A double-hop issue caused by Kerberos configuration. This includes SPN setup and delegation authorization.
- A mismatch between the PBIRS version and the Power BI Desktop for report server version. This is a frequent problem for PBIRS issues but had nothing to do with causing the issue. Remember, it was working then it was not.
The problem was:
We were using a
friendly URL which did not have the same name as the machine name. For example, we were using the URL <www.ssrsreports.com> and the machine
name was ssrsreports.domainname.com.
When the Report Manager service called the Report Server API the
authentication failed and resulted in both types of errors. Both error types were at their core
authentication issues.
In order to fix the
issue we added the friendly URL to the BackConnectionHostNames in the registry
located here:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
If it does not
already exist add a Multi-String Value with the name BackConnectionHostNames
then add your friendly URL(s) as a value.
Using our example the value we would have added was <www.reports.com>.
Finally, restart the
PBIRS service.
After a lot of
research and vocabulary learning the following articles were helpful: