I expect that at least blocking version should retry to reconnect to nodes until it reaches ConnectionTimeout time. As client is not connected it’s strange to throw configuration Exception about bucket. Bucket is configured right, you just cannot connect.
As I mentioned cluster.clusterManager().hasBucket("mybucket")
behaves exactly the way I described (tries to reconnect until reaching timeout and then gives TimeoutException) and it looks right for me. So behavior at least inconsistent between different calls.
You can also see in logs that Netty do reconnect attempts and if you retry openBucket you will end up with many attempts of connection