After successfully importing an existing vCenter (8.0.3) and NSX (4.2.1.3) into VMware Cloud Foundation (VCF) 9.1 as a Workload Domain, the NSX Manager UI incorrectly displays an Upgrade in Progress or Paused status. This behavior prevents subsequent lifecycle operations or upgrades to VCF 9.1 from the VCF Operations (formerly SDDC Manager) interface.
NSX Manager UI shows upgrade status as PAUSED.
Both 'From' and 'To' versions in the upgrade plan appear identical (e.g., 4.2.1.3).
VCF Operations displays a "partial upgrade" warning or indicates an upgrade is already in progress.
Product: VMware Cloud Foundation 9.1
Component: VMware NSX 4.2.1.x
Scenario: Brownfield import of existing workload domain into VCF.
This issue is typically caused by a software processing defect in the NSX Upgrade Coordinator. When the service restarts (due to a manager reboot or service interruption) after a previous upgrade attempt or import, it triggers post-upgrade host checks. If any hosts in the fabric are in a 'Failed,' 'Down,' or 'Not Responding' state, the Upgrade Coordinator regresses the overall status to 'Paused,' even if the functional upgrade was complete.
To resolve the stuck status and allow VCF lifecycle operations to proceed, perform the following steps:
Identify Problematic Hosts:
In the NSX Manager UI, navigate to System > Upgrade > Hosts.
Identify any hosts listed in a Failed or Not Responding post-check state.
Verify Fabric Health:
Navigate to System > Fabric > Hosts and check the status of the identified transport nodes.
Ensure all hosts are reachable and show a Success or Up status in both NSX and the vSphere Client.
Remediate or Remove Stale Hosts:
Resolve connectivity or hardware issues for affected hosts.
If a host has been decommissioned but remains in the NSX database, remove it using the following API call:
DELETE /api/v1/transport-nodes/<transport-node-id>?force=true&unprepare_host=false Synchronize Inventory in VCF:
Log in to the SDDC Manager/VCF Operations console via SSH.
Run the following API command to force a version synchronization:
curl -X POST -H 'Content-type: application/json' -H 'Accept: application/json' -H "Authorization: Bearer $TOKEN" http://localhost/v1/resources/version-syncs -d '{"resourceType":"SYSTEM"}' Verify Status:
Once all hosts are healthy and the inventory sync is complete, refresh the NSX Upgrade screen. The status should transition to Success or Not Started, allowing the VCF 9.1 upgrade to proceed.