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
+ "] is build ["
                    + buildHash
                    + "] of version ["
                    + version
                    + "] but this node is build ["
                    + Build.CURRENT.hash()
                    + "] of version ["
                    + Version.CURRENT
                    + "] which has an incompatible wire format",
                e
            );
        }
        @Override
        public void writeTo(StreamOutput out) throws IOException {
            Version.writeVersion(version, out);
            out.writeString(buildHash);
            discoveryNode.writeTo(out);
            clusterName.writeTo(out);
        }
        public Version getVersion() {
            return version;
        }
        public String getBuildHash() {
            return buildHash;
        }
        public DiscoveryNode getDiscoveryNode() {
            return discoveryNode;
        }
        public ClusterName getClusterName() {
            return clusterName;