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 boolean isClosed() {
            return false;
        }
        @Override
        public void close() {
            assert false : "should not close the local node connection";
        }
        @Override
        public void incRef() {}
        @Override
        public boolean tryIncRef() {
            return true;
        }
        @Override
        public boolean decRef() {
            return false;
        }
        @Override
        public boolean hasReferences() {
            return true;
        }
        @Override
        public void onRemoved() {
            assert false : "should not remove the local node connection";
        }
        @Override
        public String toString() {
            return "local node connection";
        }