Error messages can come in all shapes and sizes. And, as some of my more recent blog posts have hinted towards, often the best way of overcoming these is to read any presented error message correctly. Attempting to conjure up some grandiose and far-reaching conclusion can often lead to fruitless hours down the rabbit hole, when ultimately the tried and tested IT resolution methods will, more often than not, cause all of your problems to disappear.
Bearing all of this in mind, I was recently presented with the following error message during a data-tier application package (DACPAC) to an Azure SQL database, on an Azure DevOps release pipeline:
DevOps automation will almost, always take out any headaches when managing frequent deployments. Notwithstanding this simple fact, it still does not mean the end of your problems, as the appearance of this error message very clearly demonstrates. To compound things further, as we have no detailed error information to work with, merely reading the precise text over and over again would not lead to a speedy resolution.
In an attempt to resolve the error, I booted up Visual Studio and tried deploying out the DACPAC manually, using the same service account defined as part of the Azure DevOps pipeline. What, at the time, felt like a vain attempt at resolution quickly bore fruit. It turned out that the service account, an Azure Active Directory (AAD) Administrator account on the Azure SQL database, had an expired password. This circumstance was, therefore, causing any login attempt to fail and, consequently, the error displayed above. Resetting the password, updating the pipeline connection credentials and rerunning the deployment, naturally, caused everything to start working again successfully.
I’m unsure whether this generic error message appears for other issues that could potentially occur as part of a deployment. But, if you stumble upon this message yourself, hopefully, this post will provide a steer towards at least one thing that you can double-check before any hair pulling occurs! 🙂