An Azure service that enables the connection of on-premises networks to Azure through site-to-site virtual private networks.
Welcome to Microsoft Q&A!
@Matt Carson I hope you are doing well,
VpnGw1 → VpnGw1AZ migration preflight validation failure is not caused by obvious prerequisites (GatewaySubnet size /24 and Standard Public IP are already satisfied). The key here is the inner validation error tied to your tracking ID.
- The portal migration workflow uses the documented API version 2025-07-01. That version is supported, but the backend validation pipeline performs additional gateway-specific checks before allowing the AZ-aware SKU swap.
- Even when prerequisites look correct, the Microsoft.Network preflight validation can fail if:
- The gateway is pinned to a legacy compute cluster that does not support AZ migration.
- There are hidden dependencies (e.g., active BGP sessions, custom IPsec policies) that block the instance swap.
- The subscription or region has a capacity constraint for AZ-aware SKUs, which is surfaced only in the inner error.
- There are hidden dependencies (e.g., active BGP sessions, custom IPsec policies) that block the instance swap.
- The gateway is pinned to a legacy compute cluster that does not support AZ migration.
Next steps to identify the blocker
- Retrieve the inner error details: Run the migration via Azure PowerShell/CLI with -Debug enabled. The command Start-AzVirtualNetworkGatewayMigration (or equivalent REST call) will output the inner validation error that the portal masks.
- Check cluster compatibility: Use Get-AzVirtualNetworkGateway and inspect the Sku and GatewayType. If the gateway is hosted on a non‑AZ cluster, migration will fail regardless of subnet size.
- Validate hidden dependencies:
- Confirm no custom IPsec/IKE policies are attached.
- If BGP is enabled, ensure peer configuration matches AZ gateway requirements.
- Escalate with tracking ID: Since you already have b6c6ad21-ec14-42ed-8987-e420c0f8e516, open a support ticket and provide this ID. Microsoft engineering can trace the backend validation logs to pinpoint the exact blocker.
If this answer helps resolve your issue, please mark it as Accepted so others in the community can benefit.