The VMs are not migrating and are getting stuck on "Waiting for maintenance window" even after the "Schedule Now" option is selected.
Executing Check_mig_tracker_issues.sql (script attached to this KB) shows some migration entries that are stuck.
The behavior is seen with both HCX 4.11.3 & 9.0.1.
A purging policy removes the migration tracker after 30 days (from migration start time).
If a restart of the HCX Manager or services after the purging policy is run, then the migration workflow would be unable to identify the migration tracker and fail to revive.
This results in migration being stuck on waiting for maintenance window.
This issue is resolved in VMware HCX 4.11.4, available at Broadcom downloads and upcoming VMware HCX 9.1 VCF release.
If you are having difficulty finding and downloading software, please review the Download Broadcom products and software KB.
Refer >> VMware HCX 4.11.4 Release Notes
Note: If you already have an existing migration that is progressing even after 30 days of start, please do not restart services or HCX Manager. Attempt, the switchover soon.
If you have already hit the issue, then follow the below workaround.
Check_mig_tracker_issues.sql on the Source HCX Manager.patch_jobcontrol_expiration.sh to both managers.
Patch execution steps
Note:
patch_jobcontrol_expiration.sh’ on both the HCX manager Appliances.chmod +x <Path_to_file>/patch_jobcontrol_expiration.shbash <Path_to_file>/patch_jobcontrol_expiration.sh[INFO] Stopping app-engine...
[INFO] app-engine stopped successfully
[INFO] Backup created at /home/admin/DataCleanupService.zql.bak.20260217_143025
[SUCCESS] JobControl expirationPeriodHours updated from 720 to 4320 in /opt/vmware/deploy/zookeeper/DataCleanupService.zql
[INFO] Starting app-engine...
[INFO] app-engine started successfullygrep -A1 '"collection": "JobControl"' /opt/vmware/deploy/zookeeper/DataCleanupService.zql"collection": "JobControl",
"expirationPeriodHours": 4320| Code | Meaning |
|------|---------|
| 0 | Success |
| 1 | ZQL file not found |
| 2 | JobControl entry not found in file |
| 3 | sed command failed |
| 5 | Backup creation failed |
| 6 | Failed to stop app-engine |
| 7 | Failed to start app-engine |
Rollback of the patch:
Check_mig_tracker_issues.sql script execution steps:
chmod +x <Path_to_file>/Check_mig_tracker_issues.sqlpsql hybridity -f <Path_to_file>/Check_mig_tracker_issues.sqlmigration_group_id | migration_id | tracker_job_id | tracker_state | tracker_concluded | tracker_creation_date | tracker_last_updated | parent_job_id | parent_job_type | parent_workflow_type | parent_state | parent_previous_state | parent_concluded | parent_last_updated | flag | parent_missing
--------------------------------------+--------------------------------------+--------------------------------------+-----------------------+-------------
------+-------------------------+--------------------------+--------------------------------------+-----------------+----------------------+--------------
+-----------------------+------------------+---------------------+-----------------------------+----------------
####-####-####-#### | ####-####-####-#### | ####-####-####-#### | WAIT_FOR_MAINT_WINDOW | f
| 2025-08-14 14:53:27.925 | 2025-12-16T10:26:21.034Z | ####-####-####-#### | | |
| | | | PARENT_MISSING_IN_JOB_TABLE | t
####-####-####-#### | ####-####-####-#### | ####-####-####-#### | WAIT_FOR_MAINT_WINDOW | f
| 2025-11-03 17:09:14.052 | 2025-12-16T10:26:27.394Z | ####-####-####-####X | | |
| | | | PARENT_MISSING_IN_JOB_TABLE | t