### Description

The `sendRequest` method is asynchronous and notifies a 
`TransportResponseHandler` when it completes the excecution
(successfully or unsuccessfully). 

When opening the connection we only catch `NodeNotConnectedException`
( https://github.com/elastic/elasticsearch/blob/main/server/src/main/java/org/elasticsearch/transport/TransportService.java#L719 ) which is currently fine as no implementations
throw other type of exception however, it'd be best to catch `Exception` here
so the `handler` gets notified of potential exceptions (as opposed to the caller
having to `try/catch` the call to `sendRequest`)
server/src/main/java/org/elasticsearch/transport/TransportService.java
buildHash = in.readString();
            try {
                
                
                discoveryNode = new DiscoveryNode(in);
            } catch (Exception e) {
                maybeThrowOnIncompatibleBuild(null, e);
                throw e;
            }
            maybeThrowOnIncompatibleBuild(discoveryNode, null);
            clusterName = new ClusterName(in);
        }
        private void maybeThrowOnIncompatibleBuild(@Nullable DiscoveryNode node, @Nullable Exception e) {
            if (isIncompatibleBuild(version, buildHash)) {
                throwOnIncompatibleBuild(node, e);
            }
        }
        private void throwOnIncompatibleBuild(@Nullable DiscoveryNode node, @Nullable Exception e) {
            throw new IllegalArgumentException(
                "remote node ["
                    + (node == null ? "unidentifiable" : node)
                    + "] is build ["
                    + buildHash
                    + "] of version ["
                    + version
                    + "] but this node is build ["
                    + Build.CURRENT.hash()
                    + "] of version ["
                    + Version.CURRENT
                    + "] which has an incompatible wire format",