Check sddcmanager_migration_app_upgrade.log in path /var/log/vmware/vcf/lcm/thirdparty/upgradeID/
2022-01-18 06:41:58.783 ERROR [,,,] 3428 --- [ool-4-thread-10] c.v.e.s.o.model.error.ErrorFactory : [QJKMGL] EDGE_NODE_HOST_INFO_COLLECTION_FAILED Failed to collect edge cluster node host info mapscom.vmware.evo.sddc.orchestrator.exceptions.OrchTaskException: Failed to collect edge cluster node host info maps at com.vmware.vcf.migration.actions.GetEdgeNodeHostInfo.execute(GetEdgeNodeHostInfo.java:111) ~[sddcmanager-migration-app-4.3.1-vcf4310RELEASE.jar:na] at com.vmware.vcf.migration.actions.GetEdgeNodeHostInfo.execute(GetEdgeNodeHostInfo.java:42) ~[sddcmanager-migration-app-4.3.1-vcf4310RELEASE.jar:na] at com.vmware.evo.sddc.orchestrator.platform.action.FsmActionState.lambda$static$0(FsmActionState.java:14) ~[orch-platform-5.0.0-vcf4310-cdbcda0-20210913150250.jar:na]Caused by: com.vmware.vapi.bindings.convert.ConverterException: Could not convert field 'data_network_ids' of structure 'com.vmware.nsx.model.vsphere_deployment_config' at com.vmware.vapi.internal.bindings.convert.impl.JavaClassStructConverter.fromValue(JavaClassStructConverter.java:96) ~[vapi-runtime-2.19.0.jar:na] at com.vmware.vapi.internal.bindings.convert.impl.JavaClassStructConverter.fromValue(JavaClassStructConverter.java:33) ~[vapi-runtime-2.19.0.jar:na]
The issue is that the vapi runtime (which is used by the NSX Java SDK) does not deal with a null value in an array.
Workaround:
curl -s -k -u 'admin:<nsx_admin_pass>' -H 'Accept:application/json' -H 'Content-Type:application/json' -X GET https://NSXmanagerFQDN/api/v1/transport-nodes/EDGE_Cluster_IDpsql -h localhost -U postgres -d platform -c "select * from nsxt;" > /tmp/nsxtdb.txt"nsxtEdgeClusters": { | "nsxmanager1.local:b6d0eaee-2dc5-41ca-b4ab-7274f7153482": { | "edgeClusterStatus": "UP", | "edgeClusterMembersTransportNodeIds": [ | "b2db8637-7e0f-4232-ab18-a1e8d546d10f", | "090129e6-3090-474c-bf68-77c7402578b5" | ],
curl -s -k -u 'admin:<nsx_admin_pass>' -H 'Accept:application/json' -H 'Content-Type:application/json' -X GET https://nsxmanager1.local/api/v1/transport-nodes/b2db8637-7e0f-4232-ab18-a1e8d546d10f | json_pp > edge1.json"data_network_ids" : [
"dvportgroup-1028", "dvportgroup-1029", null ],
vi edge1.json"data_network_ids" : [
"dvportgroup-1028", "dvportgroup-1029", "dvportgroup-1029" ],
curl -s -k -u 'admin:NSXManageradminPassword' -H 'Accept:application/json' -H 'Content-Type:application/json' -X PUT https://nsxmanager1.local/api/v1/transport-nodes/b2db8637-7e0f-4232-ab18-a1e8d546d10f -d @edge1.json