We have set up a Pipeline in Azure DevOps that exports a model-driven solution and puts it in git. It uses the "old" build components in version 0.3.6.
Yesterday I noticed that the pipeline was killed after one hour. I did some investigation and noticed that a new set of build components have been published, so I installed that in our Azure DevOps and made a new pipeline using the new "Power Platform" components - all it does is install the tool package and then try to export the solution.
However - this pipeline is also killed after an hour.
I am using a service connection with username/password that I used to create the original pipeline with the old version of the build components, so no MFA/SP used.
The logs are these:
##[debug]Evaluating condition for step: 'Power Platform Export Solution (unmanaged)'
##[debug]Evaluating: succeeded()
##[debug]Evaluating succeeded:
##[debug]=> True
##[debug]Result: True
Starting: Power Platform Export Solution (unmanaged)
==============================================================================
Task : Power Platform Export Solution
Description : Power Platform Export Solution
Version : 0.0.1
Author : Microsoft
Help : [More Info](https://aka.ms/buildtoolsdoc)
==============================================================================
##[debug]VstsTaskSdk 0.11.0 commit 7ff27a3e0bdd6f7b06690ae5f5b63cb84d0f23f4
##[debug]Entering D:\a\_tasks\PowerPlatformExportSolution_16f6dae7-e6ef-4629-ae75-7988463cb6a6\0.0.1\ExportSolution.ps1.
##[debug]Loading module from path 'D:\a\_tasks\PowerPlatformExportSolution_16f6dae7-e6ef-4629-ae75-7988463cb6a6\0.0.1\SharedFunctions.psm1'.
##[debug]Exporting function 'Get-ServiceConnection'.
##[debug]Exporting function 'Get-PSCredentialFromServiceConnection'.
##[debug]Exporting function 'Get-SpnInfoServiceConnection'.
##[debug]Exporting function 'Get-AuthInfoFromActiveServiceConnection'.
##[debug]Exporting function 'Add-BapAdminConnection'.
##[debug]Exporting function 'Get-UrlFromEnvironmentVariables'.
##[debug]Exporting function 'Set-EnvironmentUrl'.
##[debug]Exporting function 'Get-VstsInputWithDefault'.
##[debug]Exporting function 'Get-TaskInputProperties'.
##[debug]Exporting function 'Wait-CrmOperation'.
##[debug]Exporting function 'Wait-EnvironmentAvailability'.
##[debug]Exporting function 'Get-DomainNameFromUrl'.
##[debug]Exporting function 'Import-PowerPlatformToolsPowerShellModule'.
##[debug]Exporting function 'Get-BindingRedirector'.
##[debug]Exporting function 'Get-OutputDirectory'.
##[debug]Exporting function 'Disable-AdminMode'.
##[debug]Importing function 'Add-BapAdminConnection'.
##[debug]Importing function 'Disable-AdminMode'.
##[debug]Importing function 'Get-AuthInfoFromActiveServiceConnection'.
##[debug]Importing function 'Get-BindingRedirector'.
##[debug]Importing function 'Get-DomainNameFromUrl'.
##[debug]Importing function 'Get-OutputDirectory'.
##[debug]Importing function 'Get-PSCredentialFromServiceConnection'.
##[debug]Importing function 'Get-ServiceConnection'.
##[debug]Importing function 'Get-SpnInfoServiceConnection'.
##[debug]Importing function 'Get-TaskInputProperties'.
##[debug]Importing function 'Get-UrlFromEnvironmentVariables'.
##[debug]BoundParams: ExportRelationshipRoles = False
##[debug]BoundParams: ExportSales = False
##[debug]ExportSolution from org: https://MYORG.crm4.dynamics.com/...
##[debug]Get-Var: authInfo = System.Collections.Hashtable
##[debug]BoundParams: authInfo = System.Collections.Hashtable
##[debug]authInfo: Credential = System.Management.Automation.PSCredential
##[debug]authInfo: TenantId =
##[debug]authInfo: AuthType = OAuth
##[debug]authInfo: EnvironmentUrl = https://MYORG.crm4.dynamics.com/
##[debug]Get-Var: SolutionName = $(SolutionName)
##[debug]BoundParams: SolutionName = $(SolutionName)
##[debug]Get-Var: SolutionOutputFile = D:\a\1\s\PowerApps\$(SolutionName).zip
##[debug]BoundParams: SolutionOutputFile = D:\a\1\s\PowerApps\$(SolutionName).zip
##[debug]BoundParams: Managed = False
##[debug]Get-Var: ExportAutoNumberingSettings = True
##[debug]BoundParams: ExportAutoNumberingSettings = True
##[debug]BoundParams: ExportCalendarSettings = False
##[debug]Get-Var: ExportCustomizationSettings = True
##[debug]BoundParams: ExportCustomizationSettings = True
##[debug]BoundParams: ExportEmailTrackingSettings = False
##[debug]Get-Var: ExportGeneralSettings = True
##[debug]BoundParams: ExportGeneralSettings = True
##[debug]BoundParams: ExportIsvConfig = False
##[debug]BoundParams: ExportMarketingSettings = False
##[debug]BoundParams: ExportOutlookSynchronizationSettings = False
##[debug]BoundParams: ExportRelationshipRoles = False
##[debug]BoundParams: ExportSales = False
VERBOSE: InProcBindingRedirect: 3 - looking to resolve assembly: Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a
This is the last line of the logs in this step. When an hour has passed, the pipeline is killed and the logs for this specific step are cleared.
The configuration of the "Export step" is this:
Finaly: On the Azure DevOps MarketPlace there has been some speculation about the timeout being caused by large solutions. When the pipeline was previously working, it finished the export in 19 seconds, so I doubt that this is the cause ... for us, at least.
Please help 🙂
ExportSolution still is only exposed as a synchronous call, as such it is vulnerable to http service side timeouts in e.g. edge proxies. There is service side work under way to also expose this as a proper asynchronous request/response. No ETA for that fix to be deployed.
The time needed on the service side to produce the solution.zip can vary considerably, depending on momentary compute load in your CDS environment.
If you see this repeatedly for your ~20 sec export solution, please run your pipeline with diagnostics enabled and zip up the logs and attach to this thread. The logs should emit e.g. orgId and request/jobIds that we can correlate with our service side telemetry
WarrenBelz
69
Most Valuable Professional
mmbr1606
51
Super User 2025 Season 1
MS.Ragavendar
36