Troubleshooting PowerBI Deployment Pipelines
PowerBI is Microsoft “premier” reporting technology, but anyone that has worked with it knows how absolutely woeful it is when it comes to deployment approaches. You end up with these (sometimes massive) pbix files to move around, and keep in sync between multiple environments.
Let’s be honest here. Most data projects have this issue. Maintaining reports and having a “proper” devops deployment pattern is often an afterthought for these products. And PowerBI is no different.
However Microsoft launched a PowerBI Deployment Pipeline technology to try and make things a little easier in this regard, allowing you to create a deployment pipeline of a maximum of three stage (why three?), create basic parameterisation rules between the stages and then promote your entire workspace content between them. Obviously this functionality is only available if you cough for their Premium offering, but it’s there. And it’s actually not that bad - it works. On the whole. It does have some limitations however.
When it fails to deploy, however, you just get an absolutely TERRIBLE error. It literally just fails with an abstract error. And leaves you sitting there wondering WHAT has happened. Not exactly what you would expect from something that has been released for as long as this has, nor something that you are ultimately paying a fair amount of money for (even if its included in the Premium SKU’s, these aren’t that cheap!).
Before the deployment pipeline tech came along, the only real way of doing these sort of deployments was using PowerShell scripts - exporting and re-importing the workspace content - but that it self was fraught with failure cases due to the export size restrictions, timeouts, and such.
So what do you do if you are using PowerBI Deployment Pipelines and you are hit with one of their naff error messages? Well, the solution to starting to narrow down the cause of your failure is actually insanely simple. Open your browsers developer tools, go to the Network Requests tab, and re-run the deployment. Look for the last failed request before the error appears and check the response - you will find the error there, along with (usually!) a reference to the underlying dataset, dataflow or report that is causing your deployment issue. No more needle in a haystack hunting.