It was no fun learning about the issue "Report Embed Error" on a production application.
When I started looking at the issue, everything looked find as the Power BI report was there, there were no issues with permissions and no issue with Gateway setup; but then I noticed the Power BI report GUID is no longer the same.
I was wondering how did that happen?
I looked at all the things and realized that a GUID will stay with the report, just because the developer renames the original file as backup and creates a new file, than that does not mean that the GUID will magically be updated on the backup file rather than the new file.
It's a simple and easy to understand thing, but very hard to catch at first glance.
If the GUID is such a important factor on a Power BI Embed solution, than there should have been some type of heads up or warning notification.
One would have hoped that while publishing a new report with same name as a previously published report, Power BI will alert or show that a report with similar name is already hosted and this new report being published with receive a new GUID.
If it is just a share issue with one or two users, then the following steps would be helpful.
For such a issue, the easiest solution is to "Share" the new report with "Read and reshare" option, with the same account as Azure App account, that is used for power bi embed solution.
Keep in mind:
Power BI Desktop (try to keep single developer or generic company login for publishing)
PowerBI.com, confirm by checking "Share" option, that the account used in Azure has access.
Azure Portal: Make sure to have "App Registration" and "Enterprise App" (One is used for user login with email and password, and another is used by website embed solution)
If it is a web embed issue where the report is hosted on one or more production application, than it will require a leg work.
First embed solution for the web application requires the unique GUID reference to get the exact report.
When the GUID gets changed due to different user publishing the report or the name being changed, which then returns a new GUID, one will need to update the web application configuration to use the new GUID.
changes for whatever reason than
Website: Make sure you call authentication option with email and password first to get the token, then call the API authentication to get report access for embed. (There may be a better solution in future, so use the latest method).