When attempting to transition a vSphere cluster from vLCM Baseline (VUM) management to vLCM Image-based management using the PowerShell-based transition workflow, the operation fails during the image compliance check phase.
Despite the cluster being in an active state and eligible for transition, the workflow does not proceed, and the PowerShell script reports the following errors:
(ERROR) Check vLCM compliance for cluster "<cluster-name>" failed.(ERROR) Cluster "<cluster-name>" is already being checked for image compliance. Skipping check.
SDDC Manager
The failure occurs due to stale or orphaned tasks/locks present in the SDDC Manager database.
In this scenario, an ACTIVE lock entry remains in the platform database, indicating an in-progress operation that is no longer valid. Although no active workflow is running, the lock prevents SDDC Manager from initiating a new vLCM image compliance check.
Example lock entry observed in the database:
Connect to DB : psql -h localhost -U postgres -d platform
You are now connected to database "platform" as user "postgres".platform=# \xExpanded display is on.platform=# select * from lock;
-[ RECORD 1 ] --id | <lock-id>creation time | 1769212800065modification time | 1769212800065error |locking context | {"serviceIdentifier": "Password Manager", "description": "Password management operation in progress. Please wait for completion", "pollingInterval":0, "expirationTime":0}resource id |resource type | deploymentstatus | ACTIVEresource_name | LEGACYreentrant_key |resource_lock_type |
Because SDDC Manager detects the cluster as already undergoing an operation based on this stale lock, the vLCM transition workflow is blocked.
To resolve this issue, the stale lock must be identified and removed from the SDDC Manager database.
Note: Proceed with database modifications only when it is confirmed that no related workflows are actively running in the SDDC Manager UI.
Powered-off snapshots of the SDDC Manager appliance must be taken prior to proceeding.
SSH to the SDDC Manager appliance as vcf and root.
Connect to the PostgreSQL database:
psql -h localhost -U postgres -d platform
Existing locks must be reviewed to identify the stale entry:
select * from lock;
Any ACTIVE locks that correspond to stale or non-running operations must be identified, noting the exact string in the id column.
The stale lock entry must be removed by executing the following command (replace <lock-id> with the ID identified in Step 5):
delete from lock where id = '<lock-id>';
select * from lock where id = '<lock-id>';