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
public static final HandshakeRequest INSTANCE = new HandshakeRequest();
        HandshakeRequest(StreamInput in) throws IOException {
            super(in);
        }
        private HandshakeRequest() {}
    }
    public static class HandshakeResponse extends TransportResponse {
        private final Version version;
        private final String buildHash;
        private final DiscoveryNode discoveryNode;
        private final ClusterName clusterName;
        public HandshakeResponse(Version version, String buildHash, DiscoveryNode discoveryNode, ClusterName clusterName) {
            this.buildHash = Objects.requireNonNull(buildHash);