Unable to move forward in the vLCM/Mixed Clusters Upgrade Wizard, after retrying the failed vLCM/Mixed Clusters Upgrade
search cancel

Unable to move forward in the vLCM/Mixed Clusters Upgrade Wizard, after retrying the failed vLCM/Mixed Clusters Upgrade

book

Article ID: 384149

calendar_today

Updated On:

Products

VMware SDDC Manager

Issue/Introduction

  • Unable to find images in dropdown while retrying vLCM/Mixed Clusters Upgrade.
  • Unable to retry cluster upgrade after failure post partial upgrade of one or more hosts.

Environment

SDDC Manager 5.2.1

Cause

There is a corner case issue UI issue, which occurs only when retrying the failed upgrade of vLCM/Mixed Clusters 

Resolution

To resolve this issue ,we have to retry the failed Upgrade by using the API "POST /v1/upgrade"

Create payload for Upgrade API :

  • Get previous failed Upgrade details:
    • Workload Domains → <Select Domain with failed upgrade> → Update History → Click "VIEW DETAILS" for Failed Upgrade that you want to re-try. Note the upgrade Id from URL as shown in image below.

    • Developer Center -> API Explorer -> GET /v1/upgrades/{upgradeId}
      • Use upgrade Id from previous step and copy the response payload.
    • Expand the JSON output in a notepad:
      • Note "resourceUpgradeSpecs" from the response. Lets call it "failedUpgradeResourceUpgradeSpecs". We will refer this variable later
      • Note "bundleId" from the response. Lets call it "bundleID". We will refer this variable later
      • Note "resourceUpgradeSpecs.personalitySpec.personalityId" from the response. Lets call it "personalityID". We will refer this variable later

 

Example Payload:

{
    "id": "7eec3312-004b-434c-b356-e24166f4c958",
    "bundleId": "4481bf33-22a8-5228-ba63-6ca3c49c9565",
    "resourceType": "CLUSTER",
    "parallelUpgrade": true,
    "resourceUpgradeSpecs": [
        {
            "resourceId": "6d2a6228-c6ee-4755-b768-a0208981964a",
            "scheduledTimestamp": "2025-03-26T05:30:11.380Z",
            "personalitySpec": {
                "personalityId": "2ef56b9d-9e1c-476d-ab4d-1338d5dfa708"
            },
            "esxUpgradeOptionsSpec": {
                "esxUpgradeFailureAction": {
                    "retryDelay": 300,
                    "retryCount": 3,
                    "action": "RETRY"
                },
                "enforceHclValidation": false,
                "enableQuickPatch": false,
                "enableQuickboot": true,
                "evacuateOfflineVms": true,
                "disableHac": false,
                "disableDpm": true,
                "preRemediationPowerAction": "DO_NOT_CHANGE_VMS_POWER_STATE"
            }
        }
    ],
    "status": "COMPLETED_WITH_FAILURE",
    "taskId": "7eec3312-004b-434c-b356-e24166f4c958",
    "bundle": {
        "id": "4481bf33-22a8-5228-ba63-6ca3c49c9565",
        "type": "VMWARE_SOFTWARE",
        "description": "Description for ESX_HOST",
        "version": "9.0.0-24614294",
        "vendor": "VMware",
        "releasedDate": "2025-03-14T15:12:15Z",
        "isCumulative": false,
        "sizeMB": 644.107421875,
        "downloadStatus": "SUCCESSFUL",
        "components": [
            {
                "description": "ESX_HOST",
                "vendor": "VMware",
                "releasedDate": "2025-03-14T15:12:15Z",
                "toVersion": "9.0.0.0.24614294",
                "fromVersion": "1.1.1-12345",
                "imageType": "PATCH",
                "id": "7b0458c8-e92c-4df6-8ac8-ea7e4d80df41",
                "type": "HOST"
            }
        ]
    },
    "endTime": 1742967256622
}

 

Validate Personality Id :

  • Ensure the personality ID in the upgrade payload corresponds to the image you intend to apply to the cluster.
    • Developer Center > API Explorer> GET /v1/personalities/{personalityId}
      • Use personalityID from previous step.
    • Verify that the personality matches the one we intend to apply to the cluster.

 

Get the resource id of cluster:

  • Inventory > Workload Domains > Select the concerned cluster
    • Let's call the id as "resourceID". We will refer this variable later

 

Create Upgrade Payload :

  • Now use Developer Center -> API Explorer -> POST /v1/upgrade with below payload:
    • If any field is missing in failedUpgradeResourceUpgradeSpecs, you can remove that from payload.
    • "parallelUpgrade" is set to false because we are retrying only for one cluster.

{
  "bundleId": "<bundleID>",
  "draftMode": false,
  "parallelUpgrade": false,
  "resourceType": "CLUSTER",
  "resourceUpgradeSpecs": [
    {
      "resourceId": "<resourceID>",
      "shutdownVms": <failedUpgradeResourceUpgradeSpecs.shutdownVms>,
      "upgradeNow": true,
      "personalitySpec": {
        "personalityId": "<personalityID>",
        "hardwareSupportSpecs": "<failedUpgradeResourceUpgradeSpecs.hardwareSupportSpecs>",
      },
      "customISOSpec": "<failedUpgradeResourceUpgradeSpecs.customISOSpec>",
      "enableQuickboot": "<failedUpgradeResourceUpgradeSpecs.enableQuickboot>",,
      "evacuateOfflineVms": "<failedUpgradeResourceUpgradeSpecs.evacuateOfflineVms>",,
      "esxUpgradeOptionsSpec": "<failedUpgradeResourceUpgradeSpecs.esxUpgradeOptionsSpec>",
      "hostsToUpgrade": "<failedUpgradeResourceUpgradeSpecs.hostsToUpgrade>"
    }
  ]
}

The upgrade re-attempt task should get triggered now.

Additional Information