Right now Balancer gets the NN URIs through DFSUtil#getNameServiceUris, which returns logical URIs in HA is enabled. If IPFailoverProxyProvider is used, Balancer will not be able to start.
I think the bug is at DFSUtil#getNameServiceUris:
Then if clause should also consider if the FailoverProxyProvider has useLogicalURI enabled. If not, getNameServiceUris should try to resolve the physical URI for this nsId.