Azure Resource Manager errors — subscription, provider, quota, SKU and region

Look up an ARM error that comes from the subscription rather than your template — MissingSubscriptionRegistration and NoRegisteredProviderFound, SubscriptionNotFound, InvalidAuthenticationTokenTenant, SkuNotAvailable, OperationNotAllowed and ResourceQuotaExceeded quota errors, RegionDoesNotAllowProvisioning and location ineligible, AllocationFailed, throttling (429, SubscriptionRequestsThrottled), names taken or reserved, and locks — with the cause, the check and the fix.

markdownreferencev1ME2A-B3R1stage: operatetrust: officialservice: arminterface: anyMissingSubscriptionRegistrationThe subscription is not registered to use namespaceNoRegisteredProviderFoundNo registered resource provider found for locationMissingRegistrationForLocationInvalidSubscriptionRegistrationStateSubscriptionNotFoundInvalidAuthenticationTokenTenantSkuNotAvailableThe requested size for resource is currently not availableOperationNotAllowed quotaOperation results in exceeding quota limits of CoreResourceQuotaExceededRegionDoesNotAllowProvisioningThe selected region is currently not accepting new customersAllocationFailedSubscriptionRequestsThrottled429 Too Many Requests ARMReservedResourceNameStorageAccountAlreadyTakenScopeLockedPublicIPCountLimitReachedaz vm list-skusaz vm list-usageaz provider register

Created 21 Oct 2026 · Modified 23 Oct 2026 · 1 version

These errors say the subscription can't take the request as written: the provider isn't enabled, the size isn't offered there, the quota is used up, or the region is closed to you. Rewriting the template doesn't help; change the target (region, size, subscription) or the subscription's settings. Template and dependency errors are in reference/arm/deployment-errors.md; AuthorizationFailed is in reference/rbac/errors.md; RequestDisallowedByPolicy is in reference/policy/effects-and-errors.md.

Providers and subscription

ErrorCause → fixCheck
MissingSubscriptionRegistration The subscription is not registered to use namespace {namespace}The resource provider isn't registered. Templates auto-register the providers they declare, but not supporting ones a resource creates (monitoring, security). Neither does Terraform azurerm v5, whose default is resource_provider_registrations = none. Register it: az provider register --namespace <ns>; registering needs */register/action (Contributor, Owner)az provider show --namespace <ns> --query registrationState
NoRegisteredProviderFound No registered resource provider found for location {location} and API version {api-version} for type {resource-type}.Unregistered provider, or that API version or location isn't supported for the type. The message lists the supported onesaz provider show --namespace <ns> --query "resourceTypes[?resourceType=='<type>'].{api:apiVersions[0:3], loc:locations}"
MissingRegistrationForLocationRegistered, but not for that region: re-register after the provider adds regionsSame call → locations
Registering stateRegistration runs region by region; don't block on it. Resources can be created in a region once it's done thereaz provider show --namespace <ns> --query registrationState
SubscriptionNotFoundWrong subscription ID, no access to it, or it's in another tenantaz account list --query "[].{name:name, id:id, tenant:tenantId}" -o table
InvalidAuthenticationTokenTenantThe token is from a different tenant than the subscription. Sign in to that tenant: az login --tenant <tenant-id>az account show --query tenantId vs the subscription's tenant
AuthorizationFailed although your role is rightAn unregistered provider can surface as AuthorizationFailed too (Microsoft lists it as a cause)The provider check above

Size, quota, capacity and region

ErrorCause → fixCheck
SkuNotAvailable The requested size for resource '<id>' is currently not available in location '<loc>' zones '<zones>' for subscription '<sub>'. (inside InvalidTemplateDeployment when a template is validated)That size isn't offered to this subscription in that region or zone, or Spot capacity is gone. Pick another size, zone or region; Support can open a restricted SKUaz vm list-skus --location <loc> --size <prefix> --all --output table (the Restrictions column)
OperationNotAllowed Operation results in exceeding quota limits of Core. Maximum allowed: <n>, Current in use: <n>, Additional requested: <n>.A vCPU quota (subscription + region) would be exceeded. Free capacity or request an increaseaz vm list-usage --location <loc> -o table
ResourceQuotaExceeded Creating the resource of type <type> would exceed the quota of <n> resources of type <type> per resource group.A per-resource-group (or per-subscription) count limit. Delete some, or use another groupThe message gives the count
PublicIPCountLimitReachedPublic IP quota reachedaz network public-ip list --query "length(@)"
AllocationFailedThe region or cluster has no capacity for that size right now. Retry later or choose another sizeRetry, or another size in vm list-skus
RegionDoesNotAllowProvisioning; The selected region is currently not accepting new customers: https://aka.ms/locationineligibleMicrosoft restricts some regions to customers who already have resources there. Use another region, or ask Support for region accessaz account list-locations -o table; does any subscription in the tenant have resources there?

Don't type quota numbers into templates or docs: they differ per subscription. Read them live.

Throttling

ErrorCause → fixCheck
HTTP 429, SubscriptionRequestsThrottledResource Manager's token bucket is empty. It refills per region, per subscription, per service principal and per operation type: reads 250 burst / 25 per second, writes and deletes 200 / 10. Wait the Retry-After seconds; the SDKs retry on their ownThe x-ms-ratelimit-remaining-subscription-reads / -writes / -deletes response headers
The request for subscription '…' could not be processed due to an excessive volume of traffic. Please try again later.Background-job throttling: retry later—
429 from a provider (Microsoft.Network, Compute, Key Vault)Providers throttle separately (Network: 1,000 writes and 10,000 reads per 5 minutes). Some return 429 for a temporary resource state, not volumeThe error body's provider name

Polling metrics through …/providers/microsoft.insights/metrics is a common cause of subscription throttling; batch it (getBatch). More in reference/arm/throttling-and-long-running-operations.md.

Names and locks

ErrorCause → fixCheck
StorageAccountAlreadyTaken, StorageAccountAlreadyExists, DnsRecordInUseThe name is globally unique and taken. Add uniqueString(resourceGroup().id) or similaraz storage account check-name --name <n>
ReservedResourceNameThe name contains a reserved wordThe message names it
AccountNameInvalid <name> is not a valid storage account name. Storage account name must be between 3 and 24 characters in length and use numbers and lower-case letters only.Follow the rule in the message—
The scope '…' cannot perform delete operation because following scope(s) are locked: … Please remove the lock and try again. (the write variant too; the code name ScopeLocked is the hub's reading)A ReadOnly or CanNotDelete lock at this scope or above. ReadOnly also blocks POST operations such as storage listKeys, VM start and App Service plan scalingaz lock list --resource-group <rg> -o table (reference/arm/locks-and-tags.md)

When none of these fits

Get the full error with az deployment operation group list --resource-group <rg> --name <deployment> --query "[?properties.provisioningState=='Failed'].properties.statusMessage" (guides/arm/debug-failed-deployment.md). For an unknown code, the full table is Microsoft's "common deployment errors" page.

Read this document as markdown — the same bytes an agent receives.