Introduction
If you have been running Azure DevOps release pipelines to import Power Platform (and Dynamics 365 CE/CRM) solutions, you have probably come across this situation: The pipeline fails when importing the solution to you target environment, for example UAT (User Acceptance Testing) or Production, but the error message you get back is completely useless. Typically something like:
Error: The async operation completed with a statuscode of Failed.
The reason given was: An unexpected error occurred.

Not helpful at all.
The solution
Check Solution History in the Maker Portal!
Instead of digging through logs, rerunning the pipeline blindly or trying to find any info on Stack Overflow, jump straight into the Power Apps Maker Portal:
- Go to the target environment, for example your UAT environment
- Open Solutions
- Select the solution you were importing
- Open the History tab
Here you will see all recent import jobs, and this is where you will find the actual error code and the exception message.
In my case, the history showed the following exception message:
Import failed:
Request failed with: 403 and error:
{"error":
{"code": "ConnectionAuthorizationFailed",
"message":"The caller with object id '<sp-object-id>' does
not have the minimum required permission to perform the
requested operation on connection '<connection-id>'
under API 'shared_commondataserviceforapps'."
}
}
Suddenly it made sense: The problem was not the release pipeline task, but the specific service principal I use for deployments did not have the required permission for the created and reference Dataverse connection in the target environment. I use a Deployment Settings file in my release pipeline to ensure connection references are bound to the correct connections in the target environments. For that to work, the service principal must have access to those connections. In this case, I had forgotten to grant it and Azure DevOps did not surface that detail.
Release vs Build pipelines in Azure DevOps
The example above is from a release pipeline (solution import).
But the same tip also works if your build pipeline fails (solution export).
In that case, just open the Solution History for your solution in the source environment (your DEV environment).
There, the operation will be listed as Export instead of Import, and you will be able to see the real reason the export failed to your repository.
Key takeaway
Next time your build or release pipeline fails with little or no information:
👉 Go to Maker Portal → Solution → History and check the log.
Nine times out of ten, you will find the real reason there in seconds.
It is a simple but super effective troubleshooting step that can save a lot of frustration when working with automated ALM pipelines.
Feel free to leave a comment below or reach out to me on LinkedIn if you have any questions.
Join the conversation