This error occurs when your Azure subscription has reached its resource quota limit for creating AKS clusters or provisioning the required vCPUs for nodes. Azure enforces quota limits per subscription and region to prevent unintended over-provisioning. Resolving this requires either requesting a quota increase or using fewer resources in your cluster configuration.
Azure Kubernetes Service enforces quota limits on the number of managed clusters and vCPU resources available in each subscription per region. When you attempt to create or scale an AKS cluster via Terraform, Azure Resource Manager validates that the operation won't exceed these approved limits. If the requested resources exceed the current quota, the operation fails with a QuotaExceeded error. This is a safety mechanism to prevent unexpected costs and resource exhaustion.
In the Azure Portal, navigate to your subscription > Usage + quotas. Search for 'Compute' to view vCPU and managed cluster quotas. Note the current usage and limits for each VM family and region where you're deploying. Use the Azure CLI command:
az vm list-usage --location eastus -o tableReplace 'eastus' with your target region. This shows current usage vs. limits for all compute resources.
Go to Azure Portal > Subscriptions > select your subscription > Usage + quotas. Click 'Request increase' next to the quota that's exceeded (typically 'Total Regional vCPUs' or a specific family like 'Standard DSv3 Family vCPUs'). In the request form:
- Select the VM family or Total Regional vCPUs option
- Enter the new quota limit you need
- Provide a business justification
- Click 'Request' to submit
Quota increase requests are typically approved within 1-2 business days.
While waiting for quota approval, temporarily reduce the cluster size in your main.tf:
resource "azurerm_kubernetes_cluster" "example" {
default_node_pool {
vm_size = "Standard_B2s" # Use smaller SKU
node_count = 1 # Start with 1 node
max_count = 5
min_count = 1
}
}After quota increase is approved, update these values to your desired configuration and run terraform apply again.
If the quota increase is urgent, deploy your AKS cluster in a different Azure region that has available capacity. Update your Terraform provider or variable:
provider "azurerm" {
features {}
}
variable "location" {
default = "westus2" # Different region
}Run terraform plan to verify the new region has sufficient quota, then apply. Once your primary region quota is increased, migrate your cluster or deploy additional clusters.
After Azure approves your quota increase request (typically 1-2 business days), verify in Azure Portal > Usage + quotas that the new limits are in place. Then update your Terraform configuration back to your desired settings:
terraform planIf the plan shows no errors, proceed with:
terraform applyYour AKS cluster should now create successfully.
To free up quota for future deployments, remove unused AKS clusters in your subscription. Check your Terraform state for orphaned or failed clusters:
terraform state listDelete unused clusters either via:
terraform destroy -target=azurerm_kubernetes_cluster.exampleOr manually in Azure Portal > Resource groups > select group > select cluster > Delete. This immediately frees up quota for new deployments.
AKS quota operates at the subscription and region level. As of September 2025, Azure rolled out a managed cluster quota that limits the number of AKS clusters per subscription per region (typically 100). Each cluster also requires vCPU quota for its nodes. Free trial subscriptions and 'Azure for Students' accounts have lower quota limits and may not be eligible for increases—upgrading to a pay-as-you-go subscription resolves this. For multi-region deployments, track quota per region separately. When upgrading an AKS cluster, temporary surge nodes consume additional vCPU quota; set max_surge values conservatively. If your organization uses cost controls or spending limits, verify those aren't also blocking the deployment. Enterprise Agreement (EA) customers may have higher base quotas; contact Microsoft support for region-specific capacity planning.
Error: Error installing helm release: cannot re-use a name that is still in use
How to fix "release name in use" error in Terraform with Helm
Error: Error creating GKE Cluster: BadRequest
BadRequest error creating GKE cluster in Terraform
Error: External program failed to produce valid JSON
External program failed to produce valid JSON
Error: Unsupported argument in child module call
How to fix "Unsupported argument in child module call" in Terraform
Error: network is unreachable
How to fix "network is unreachable" in Terraform