How to fix ExpressRoute circuit in failed state?

avi 20 Reputation points
2024-07-03T10:54:42.1166667+00:00

I have an ExpressRoute circuit set up with a partner (Equinix). I am able to create the circuit, eventually get the service key, give it to Equinix, and it all looks right. Eventually it says "Provider Status: Provisioned". So I go to "peerings -> Azure private" to try and set up peering information (peer ASN, primary and secondary IP ranges, BGP shared key). When I hit save, it says that it failed because prior PUT call failed, and circuit is in a failed state.

The "overview" now shows "circuit status: failed".

I suspect it may be related to BGP failure, but of course, I cannot edit the peering information, because... circuit is in a failed state!

status

peering

It might be something different as well.

The circuit shows in valid state on the Equinix side, except for "Pending BGP", of course, which I want to fix.

How do I figure out why the circuit is in a failed state and fix it. Conversely, if this "failed state" is primarily because of BGP, how do I get it so that I can enable the peering settings and thus fix it?

I have created and destroyed a circuit 3 times in a row, so it isn't something transient.

Thanks in advance for all who help.

Azure ExpressRoute
Azure ExpressRoute
An Azure service that provides private connections between Azure datacenters and infrastructure, either on premises or in a colocation environment.
381 questions
0 comments No comments
{count} votes

Accepted answer
  1. KapilAnanth-MSFT 46,776 Reputation points Microsoft Employee
    2024-07-03T11:46:59.8766667+00:00

    @avi ,

    Welcome to Microsoft Q&A Platform. Thank you for reaching out & hope you are doing well.

    When you say, "I have created and destroyed a circuit 3 times in a row",

    • Did you also share the service key to your service provider 3 times?

    Generally, Circuit status being in a failed state indicates a Control plane operation failure (CRUD).

    To fix this, we can try getting and setting the Circuit.

    • Use the below Powershell command to get the Circuit
    • Then Set "Allow Classic Operations" to TRUE and Update the Circuit
      • For update operation, we should make some change
    • This is just for the testing purpose and you can set this value to "FALSE" later
    $ckt = Get-AzExpressRouteCircuit -Name "<NAMEOFCIRCUIT>" -ResourceGroupName "
    <NAMEOFRESOURCEGROUP>"
    $ckt.AllowClassicOperations = $true
    Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
    

    Let me know how this goes.

    Cheers,

    Kapil

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.