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
countDownLatch.countDown();
        }
        void stop() {
            decRef();
            try {
                final boolean completed = countDownLatch.await(30, TimeUnit.SECONDS);
                assert completed : "timed out waiting for all direct handlers to be enqueued";
            } catch (InterruptedException e) {
                assert false : e;
                Thread.currentThread().interrupt();
            }
        }
        @Nullable
        Releasable withRef() {
            if (tryIncRef()) {
                return this::decRef;
            } else {
                return null;
            }
        }
    }
    static {
        
        final String PERMIT_HANDSHAKES_FROM_INCOMPATIBLE_BUILDS_KEY = "es.unsafely_permit_handshake_from_incompatible_builds";
        if (System.getProperty(PERMIT_HANDSHAKES_FROM_INCOMPATIBLE_BUILDS_KEY) != null) {
            throw new IllegalArgumentException("system property [" + PERMIT_HANDSHAKES_FROM_INCOMPATIBLE_BUILDS_KEY + "] must not be set");
        }
        assert Version.CURRENT.major == Version.V_7_0_0.major + 1; 
    }
    private record UnregisterChildTransportResponseHandler<T extends TransportResponse>(