Microsoft Bicep · Rate Limits
Microsoft Bicep Rate Limits
Bicep is a client-side compiler / language; it has no SaaS API surface of its own. Local CLI operations (bicep build, bicep decompile, bicep publish) have no rate limits beyond local-machine resources. When Bicep deployments execute against Azure, all rate limiting comes from Azure Resource Manager (ARM) and the target resource providers. Throttling responses, headers, and policies match the upstream ARM behavior.
6 Limits
Throttle: 429
ARM TemplatesAzureCloudDeploymentDevOpsInfrastructure as CodeRate Limiting
Limits
Bicep CLI local operations local-machine
-1
No rate limit; bound only by local CPU and memory.
ARM subscription writes (deployment plane) subscription/region/serviceprincipal
10
Deployments are write operations against ARM. Bucket size 200 tokens, refill 10/sec.
ARM subscription reads (validation / what-if) subscription/region/serviceprincipal
25
Bucket size 250, refill 25/sec.
ARM template deployment depth subscription
800
Maximum 800 nested deployments per top-level deployment; 5-level nesting limit.
ARM template size deployment
4194304
Compiled JSON template ≤ 4 MB; max 256 parameters / 256 variables / 800 resources per template.
Resource-provider-specific limits varies
see vendor docs per provider (Microsoft.Compute, Microsoft.Network, Microsoft.Storage, etc.)
Each downstream resource provider applies its own throttling token buckets.
Policies
ARM token-bucket retry
Honor Retry-After on 429 responses. Azure SDKs implement exponential backoff automatically; Bicep CLI uses the SDK underneath.
Idempotent deployments
Bicep deployments are idempotent — re-running with the same parameters yields the same state. Combine with what-if to preview changes without mutating state.
Modules to reduce single-deployment fan-out
Break large templates into modules with serial / parallel scope to avoid hitting the per-deployment 800-resource cap.
Deployment scopes
Bicep supports tenant, management group, subscription, and resource group deployment scopes. Subscription-scope deployments share the subscription-level token buckets.