An Azure managed MySQL database service for app development and deployment.
The error message points to a quota or capacity validation failure rather than an ARM template syntax issue.
One angle that has not been mentioned yet is how the upgrade is being executed. Azure MySQL Flexible Server supports in-place major version upgrades from MySQL 8.0 to 8.4, but Microsoft recommends not combining the major version upgrade with other server property changes in the same REST API, SDK, or infrastructure deployment operation. If your ARM template updates the server configuration and database resources while also changing the engine version, Azure may reject the request during validation. [learn.microsoft.com], [docs.azure.cn]
I would check the deployment history and determine whether the template is changing anything other than the MySQL version, such as:
- Compute tier or SKU
- vCore count
- Storage settings
- High availability configuration
- Network settings
- Server parameters
If so, try separating the operation into steps:
- Upgrade the existing Flexible Server from 8.0 to 8.4 only.
- After the upgrade completes successfully, apply any other infrastructure or configuration changes in a separate deployment.
Also, verify whether the failure is truly a subscription quota issue or a regional capacity restriction. Microsoft documents both scenarios separately, and similar provisioning errors can occur when a region or SKU family is temporarily capacity constrained even when the deployment itself is valid. [learn.microsoft.com], [learn.microsoft.com]
Finally, check the Azure Portal -> Quotas blade for Azure Database for MySQL Flexible Server and confirm that sufficient vCore quota exists for the server's SKU family and region. Microsoft recently introduced self-service quota visibility and management specifically for MySQL Flexible Server, making it easier to verify the current limits before retrying the deployment. [learn.microsoft.com]
Help make this community better for everyone: if this answer resolved your issue, please accept it or leave an upvote. If not, share more details in a comment so we can continue the discussion and find the right solution.