The supported facts indicate two likely causes behind the change in behavior:
- The SQL Server database deploy task is deprecated. The
SqlServerDacpacDeployment@1task is marked deprecated and was scheduled for retirement on January 31, 2024. That means current task behavior is not the recommended path forward, and improvements in diagnostics should not be expected there. - Current DACPAC deployment guidance has shifted to
SqlPackage-based deployment and explicit diagnostics capture. The documented pipeline guidance for DACPAC deployment emphasizes usingSqlPackageor a deployment wrapper around it, and explicitly capturing diagnostics with the/DiagnosticsFile:parameter. That indicates detailed troubleshooting now depends on enabling diagnostic output rather than relying on the task to always emit rich inline errors.
For an Azure Pipelines hosted agent, the practical path is:
- Move away from the deprecated SQL Server deploy task for DACPAC deployment.
- Run
SqlPackagedirectly in the pipeline, or use a deployment approach that exposes its diagnostics more clearly. - Capture diagnostics explicitly during deployment:
- Use
SqlPackagepublish for the DACPAC. - Add
/DiagnosticsFile:so the deployment writes a diagnostic file. - Publish that file as a pipeline artifact so it can be downloaded after the run.
- Use
- If using a hosted or self-hosted environment, keep
SqlPackageupdated, because the documented guidance recommends regular updates.
Example deployment command pattern:
sqlpackage /Action:Publish /SourceFile:bin/Debug/MyDatabaseProject.dacpac /TargetConnectionString:{yourconnectionstring} /DiagnosticsFile:sqlpackage-diagnostics.txt
What is supported by the documentation:
- DACPAC deployment is performed with
SqlPackagepublish. - The deployment is idempotent.
- Automation environments must be able to reach the database and authenticate.
- Diagnostic capture is available through
/DiagnosticsFile:. - On hosted or self-hosted runners,
SqlPackagecan be installed and maintained separately from the deprecated task.
What is not established in the available documentation is a product statement explaining exactly why version 0.278.1 stopped surfacing the same inline error detail as an older version. The available material supports only that the older task is deprecated and that the recommended troubleshooting model is now explicit SqlPackage diagnostics capture.
References: