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
}
                    final String executor = handler.executor();
                    if (ThreadPool.Names.SAME.equals(executor)) {
                        processResponse(handler, response);
                    } else {
                        response.incRef();
                        threadPool.executor(executor).execute(new ForkingResponseHandlerRunnable(handler, null) {
                            @Override
                            protected void doRun() {
                                processResponse(handler, response);
                            }
                            @Override
                            public void onAfter() {
                                response.decRef();
                            }
                            @Override
                            public String toString() {
                                return "delivery of response to [" + requestId + "][" + action + "]: " + response;
                            }
                        });
                    }
                }
            } finally {
                response.decRef();
            }
        }
        @SuppressWarnings({ "unchecked", "rawtypes" })
        protected void processResponse(TransportResponseHandler handler, TransportResponse response) {
            try {
                handler.handleResponse(response);