There's currently a check in `TransportService.HandshakeResponse.isIncompatibleBuild` to stop ES with the same Version but different build hashes from joining a cluster. This needs to be relaxed for cloud deployments where Version is not applicable
server/src/main/java/org/elasticsearch/transport/TransportService.java
@Override
    public TransportInfo info() {
        BoundTransportAddress boundTransportAddress = boundAddress();
        if (boundTransportAddress == null) {
            return null;
        }
        final Map<String, BoundTransportAddress> profileAddresses = transport.profileBoundAddresses();
        if (remoteClusterService.isRemoteClusterServerEnabled()) {
            final Map<String, BoundTransportAddress> filteredProfileAddress = profileAddresses.entrySet()
                .stream()
                .filter(entry -> false == RemoteClusterPortSettings.REMOTE_CLUSTER_PROFILE.equals(entry.getKey()))
                .collect(Collectors.toUnmodifiableMap(Map.Entry::getKey, Map.Entry::getValue));
            return new TransportInfo(boundTransportAddress, filteredProfileAddress);
        } else {
            return new TransportInfo(boundTransportAddress, profileAddresses);
        }
    }
    public TransportStats stats() {
        return transport.getStats();
    }
    public boolean isTransportSecure() {
        return transport.isSecure();
    }
    public BoundTransportAddress boundAddress() {
        return transport.boundAddress();
    }
    public BoundTransportAddress boundRemoteAccessAddress() {
        return transport.boundRemoteIngressAddress();
    }
    public List<String> getDefaultSeedAddresses() {