Hi, ARM/Bicep can’t dynamically discover live regional capacity or auto-pick regions at deploy time, so the best practice is to
1-restrict selectable regions via createUiDefinition + Offer/Plan targeting and, if needed, Azure Policy;
2-architect for mixed-region deployments, keep the managed resource group in the customer’s chosen region but pin AI Foundry/OpenAI and other region-limited services to your supported regions and connect via Private Link/peering;
3-run an early deploymentScripts preflight (or a prereq job in your SaaS/landing page) that calls each RP’s capabilities endpoints (e.g., Postgres Flexible Server “locations/capabilities”) and SKU/feature listings to validate support, then fail fast with a clear, actionable message if the chosen region can’t host all components;
4-document quota prerequisites and surface graceful retry/instructions to request quota increases, because transient capacity/quotas aren’t queryable or enforceable from ARM templates.