Skip to content
Cloud Efficiency Hub

ExpressRoute Circuits Stuck in Not Provisioned State

The short version

An ExpressRoute circuit is billed from the moment Azure issues its service key, not from the moment the connectivity provider turns it up.

PointFive Research

Cloud cost research at PointFive

Azure service
Azure ExpressRoute
Category
Networking
Reference
CER-0417
Type
Idle or Unused Resource

Explanation

Why the waste happens and who it affects.

Circuits are regularly created ahead of a provider order that is delayed, changed or cancelled, and they sit with Provider status Not provisioned for months while the monthly circuit fee accrues. The same state appears at the end of a circuit's life when the provider has deprovisioned its side but nobody deletes the Azure resource.

These circuits carry no traffic, so nothing breaks and no application team notices, and the fixed monthly fee looks the same as that of a working circuit in cost reports. Microsoft surfaces the pattern directly through an Azure Advisor recommendation and a FinOps hubs check.

Billing model

The pricing dimensions that drive this cost.

ExpressRoute billing is tied to the circuit resource lifecycle rather than to traffic.

Circuit monthly fee
A fixed monthly port fee set by SKU (Local, Standard, Premium), bandwidth and data plan, charged whether or not the circuit carries traffic
Billing start
Billing starts when a service key is issued for the circuit, before the provider completes provisioning
Billing stop
Billing stops only after the customer deletes the circuit and the provider has deprovisioned it
ExpressRoute gateway
A gateway created for the circuit is billed hourly and keeps billing after the circuit is deleted until the gateway itself is deleted

How to detect

4 checks to find it in your estate.

  • Run the Azure Resource Graph query from the Microsoft FinOps networking guidance: resources where type =~ 'Microsoft.Network/expressRouteCircuits' and properties.serviceProviderProvisioningState == 'NotProvisioned'
  • Review the Azure Advisor cost recommendation (Preview) Delete or provision ExpressRoute circuits in a not-provisioned state, or the FinOps hubs Remove unprovisioned ExpressRoute circuits recommendation
  • On each flagged circuit's Overview page, confirm Provider status Not provisioned and check how long the circuit has existed and whether any provider order is still open
  • Check for ExpressRoute virtual network gateways and connections that were created for the circuit and would remain billable after it is removed

How to fix

4 ways to remove the waste.

  • If the circuit is still needed, send the service key to the connectivity provider and complete provisioning so the fee buys connectivity
  • If it is not needed, remove associated virtual network connections, route filters, authorizations and Global Reach links, then delete the circuit; Microsoft states that deleting a circuit whose provider status is Not provisioned stops billing for it
  • Delete ExpressRoute gateways that no longer serve any circuit, since they continue to bill hourly after the circuit is gone
  • Create circuits only when the provider is ready to provision, and track open provider orders against circuits in Not provisioned state

Documentation

Vendor references for pricing and configuration.