NSX-T upgrade pre check fails for host: Hosts Version UNKNOWN
search cancel

NSX-T upgrade pre check fails for host: Hosts Version UNKNOWN

book

Article ID: 322413

calendar_today

Updated On:

Products

VMware NSX

Issue/Introduction

Symptoms:

  • During the NSX-T upgrade, the hosts pre checks gives you a warning indicating a host or multiple hosts are unknown version:

  • The hosts host1.corp.local and host2.corp.local where previously in the inventory and prepared for NSX-T, but have been removed from vCenter and unprepared for NSX-T.
  • Searching with the host name in the NSX-T elastic search shows the host still listed with a transport node UUID.
  • Using the UUID to search for the node with the following API call show it is still trying to be unprepared:
    • GET https://{{MPIP}}/api/v1/transport-nodes/<Transport-Node-UUID>/state
    "node_deployment_state": {
        "state": "failed",
        "details": [
            {
                "sub_system_id": "e3e12eca-xxxx-xxxx-xxxx-xxxxxxxx",
                "state": "failed",
                "failure_message": "Failed to uninstall the software on host. Unable to connect the host https://10.x.x.x/sdk.\n",
                "failure_code": 26020
            }
        ]
    },
    "deployment_progress_state": {
        "progress": 46,
        "current_step_title": "Removing NSX bits"



Environment

VMware NSX-T

Cause

When the host was removed from vCenter and then unprepared for NSX-T, it was not able to cleanly remove the NSX-T VIBs and remains as an orphaned host.

Resolution

This is a known issue impacting NSX-T Data Center.

Workaround:
Make sure the host is no longer in use.
Use UUID discovered for the host with the following API call to remove the host from NSX-T:
DELETE https://{{MPIP}}/api/v1/transport-nodes/<Transport-Node-UUID>?force=true&unprepare_host=false
Wait for approx. 5 minutes, this will provide time for the cleanup to occur and then use the GET API to confirm it is no longer present in NSX-T:
GET https://{{MPIP}}/api/v1/transport-nodes/<Transport-Node-UUID>/state
This should return an object not found result once the node is removed.