Fung, Terence hi,
the core problem is that your virtual machines have their network interfaces linked to backend pools on both of your basic load balancers. the upgrade tool is smart enough to know it needs to upgrade them together, but the retry process got confused after the first failure with the ip address conflict.
that error about the parameter set is because you cannot use the retry file and the multi lb config together. they are two separate ways to call the command. since you already fixed the ip conflict, you should not need the retry file.
go back to your original approach but be more specific. recreate your $multiLBConfig variable, but this time, include the names for the new standard load balancers you want to create. the commented out lines in your script are the key. uncomment them and give your new standard load balancers distinct names.
$multiLBConfig = @( @{ 'standardLoadBalancerName' = 'myNewStandardLB-01' 'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName prod-rg -Name avi-external-alb-brbla) }, @{ 'standardLoadBalancerName' = 'myNewStandardLB-02' 'basicLoadBalancer' = (Get-AzLoadBalancer -ResourceGroupName prod-rg -Name avi-alb-ujjwp) } )
then, run the command again with just the multi config.
Start-AzBasicLoadBalancerUpgrade -MultiLBConfig $multiLBConfig -FollowLog
by explicitly naming the new standard load balancers, you give the migration script a clear target and might avoid the ambiguity it is complaining about.
if that still fails with the same backend pool error, the nuclear option is to manually dissociate the vms from the backend pools of the basic load balancers, create new standard load balancers from scratch, and then reassociate the vms. it is more work, but it gives you full control.
try your original multi lb command again, but this time with the 'standardLoadBalancerName' fields filled in. if the automated tool continues to struggle, be prepared to do a manual migration for full control.
good luck & rgds,
Alex