Symptoms:
- An Active-Active Tier-0 gateway created pre NSX 4.x is updated from Stateless to Stateful after an upgrade from NSX 3.2.x to 4.0.1/4.1.0/4.1.1.
- After the change has been made, any connected Tier-1 gateway(s) or newly connected Tier-1 gateway(s) to the Stateful Active-Active Tier-0 go into a failed state under the "Status" column of the NSX UI in "Networking" > "Tier-1 Gateways".
- Checking under the Tier-1 gateway configuration in the UI shows that under "Additional Settings", the RouterLink ports will read as "not set".
- Log lines where errors may be found:
NSX Manager /var/log/proton/nsxapi.log:
2023-07-17T18:50:58.596Z INFO providerTaskExecutor-61 NetworkProviderNsxT 4578 POLICY [nsx@6876 comp="nsx-manager" level="INFO" subcomp="manager"] Connecting Tier1 /infra/tier-1s/<Tier-1_name> to Tier0 path /infra/tier-0s/<Tier-0_name>, old Tier0 path null
2023-07-17T18:50:58.613Z ERROR providerTaskExecutor-61 PolicyProviderUtil 4578 POLICY [nsx@6876 comp="nsx-manager" errorCode="PM500015" level="ERROR" subcomp="manager"] Unexpected exception received during provider invocation.
java.lang.NullPointerException: null
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:889) ~[?:?]
at com.vmware.nsx.management.common.IdentifierFactoryImpl.getInstance(IdentifierFactoryImpl.java:101) ~[?:?]
at com.vmware.nsx.management.common.IdentifierFactoryImpl.getInstance(IdentifierFactoryImpl.java:55) ~[?:?]
at com.vmware.nsx.management.edge.lrouter.service.ExtTransitNAMServiceImpl.allocate(ExtTransitNAMServiceImpl.java:160) ~[?:?]
at com.vmware.nsx.management.edge.lrouter.ports.service.LRPortsServiceImpl.allocateSubnetToTier0RouterLink(LRPortsServiceImpl.java:1317)
Note:
<Tier-1_name> represents the name of the Tier-1 gateway.
<Tier-0_name> represents the name of the Tier-0 gateway.