Share via

Azure SQL Database automatically reverting to previous pricing tier and restoring after deletion

Abuzar Khan 0 Reputation points
2026-04-29T07:48:32.9133333+00:00

I am experiencing an issue with an Azure SQL Database where changes I make do not persist.

  • The database was originally configured with the pricing tier General Purpose: Gen5, 2 vCores.
  • I attempted to downscale it to the Basic tier, and the change was applied successfully.
  • However, after a few days, the database automatically reverted back to the original pricing tier (General Purpose: Gen5, 2 vCores) without any manual intervention.

Additionally:

  • I tried deleting the database, and the deletion completed successfully.
  • After a short period of time, the database was automatically restored.

I have checked for possible causes but have not been able to identify what is triggering this behavior.

Questions:

  1. What could cause an Azure SQL Database to automatically revert its pricing tier?
  2. What could be restoring a deleted database without manual action?
  3. Where should I check in Azure to identify the source of this behavior?

Any guidance on troubleshooting this issue would be appreciated.

Azure SQL Database

1 answer

Sort by: Most helpful
  1. SAI JAGADEESH KUDIPUDI 2,635 Reputation points Microsoft External Staff Moderator
    2026-04-29T10:35:23.43+00:00

    Hi Abuzar Khan,

    Thank you for the detailed description — I can understand why this behavior is confusing.

    From what you’ve described, this is not expected behavior from Azure SQL Database itself. Azure does not automatically change pricing tiers or restore a deleted database without an explicit action. This typically indicates that some form of automation or governance control is acting on the resource.

    There are a few common scenarios to consider:

    Azure Policy enforcement If a policy is assigned with effects like DeployIfNotExists or Modify, it can automatically remediate resources that drift from the expected configuration (for example, reverting the pricing tier).

    Infrastructure-as-Code (ARM/Bicep/Terraform) or CI/CD pipelines If your database is defined in a template and deployed on a schedule or trigger, any manual changes (like scaling down or deleting) can be overwritten by the next deployment.

    Automation (Runbooks, Azure Functions, Logic Apps) Scripts running on a schedule may be enforcing a desired state and recreating or resizing the database.

    Geo-replication or Failover Groups If the database is part of a failover group, deleting the primary can result in a failover, making the secondary appear as if the database was “restored.”

    It’s also important to note that automated backups do not restore a database by themselves — a restore operation must always be explicitly triggered by a user or process.

    The most effective way to identify the root cause is:

    Activity Log (Azure Monitor) Review operations like Microsoft.Sql/servers/databases/write and delete to see who or what initiated the action (user, service principal, or managed identity).

    Resource Group → Deployments Check for any template deployments recreating the database.

    Azure Policy → Compliance Look for policies enforcing SQL configuration.

    Automation Accounts / Functions Review any scheduled jobs or triggers targeting this resource.

    Based on your scenario, the behavior is almost certainly being triggered by an automated process (policy, deployment, or script) rather than the Azure platform itself.

    The key step is to check the Activity Log and identify the “Caller” responsible for the scale or restore operation. Once identified, you can trace it back to the corresponding policy, pipeline, or automation and adjust or disable it.

    Microsoft Reference Links:

    Hope this helps. If you have any follow-up questions, please let me know. I would be happy to help.
    Please do not forget to "Accept Answer" and "up-vote" wherever the information provided helps you, as this can be beneficial to other community members.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.