Free — VNet Injection Field Card
The one-page reference behind this article: the failover checklist, the three misconceptions that cost a rebuild, and the IP-plan rules to lock down before you delegate a single subnet.
Get the Field Card →
## How to tell your VNet injection is misconfigured
Most broken setups fail in one of three ways, and each maps back to a lever above:
- **Intermittent latency or timeouts that "move" between environments.** Classic sign that traffic is landing in the under-provisioned VNet because capacity was concentrated in the declared "primary". Fix: equal-capacity pairs, and stop trusting the label.
- **Connections fail outright after a placement change.** Usually a missing peering between the two VNets, or Private DNS Zones linked to only one of them. Failover has no path. Fix: peer both VNets and link the DNS zones to both.
- **The environment stops provisioning resources as it grows.** The delegated subnet has exhausted its IPs — the /27 tax. Fix: there's no in-place resize; plan for /24 up front and rebuild if you're already stuck.
The through-line: none of these show up in the demo environment. They surface under production load, or the first time Microsoft moves your placement — which is exactly why the design has to be right before you commit the IP plan.
## The plan before you commit your IP plan
1. **Confirm the geography's regions.** Check how many Azure regions your Power Platform geography uses. Two or more means you need a VNet pair.
2. **Size for /24, equal on both sides.** Plan capacity for growth now — resizing later means Support and a rebuild.
3. **Peer the two VNets and link Private DNS Zones to both.** Do this before you create the Enterprise Policy, not after.
4. **Create one Enterprise Policy per environment pair**, then bind it to the environment.
5. **Run `Get-EnvironmentRegion`** and design against the real placement — never against the label.
Do it in that order and the words "primary" and "secondary" become what they always were: labels, not architecture.
## Frequently asked questions
### Does the "primary" VNet in a Power Platform Enterprise Policy carry the traffic?
No. "Primary" and "secondary" are declarative labels on the Enterprise Policy; they don't route traffic or select a region. Microsoft physically places the environment in one of the geography's Azure regions, and you confirm the actual region with `Get-EnvironmentRegion`. Design both VNets as equals.
### What subnet size does Power Platform VNet injection need?
Microsoft's guidance is /24 per delegated subnet, and both subnets in a pair must have the same number of IP addresses. Avoid /27 — it exhausts under load, and once a subnet is delegated you can't resize it without contacting Microsoft Support and effectively rebuilding the Enterprise Policy binding.
### Why does failover fail even though I declared a secondary VNet?
Because declaring a secondary isn't enough. Failover needs the two VNets peered with each other and the Private DNS Zones linked to both — not just the "primary". If either is missing, traffic to the region Microsoft placed you in has no working path.
### Do I need a VNet per app or per environment?
Per environment. Enterprise hub-and-spoke with a VNet pair per Azure environment gives you isolation without exploding the VNet count. A VNet-per-app plan balloons into dozens of networks that are hard to operate; a pair-per-environment plan stays lean and scales.
### Can I reuse one delegated subnet across several Enterprise Policies?
No. A delegated subnet maps to a single Enterprise Policy. If you have three environment pairs, you need three pairs of delegated subnets — which is another reason the per-environment model is cleaner than trying to share networks across environments.