diff --git a/services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket/RSocketClientTransport.java b/services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket/RSocketClientTransport.java index 36c41472b..a8c9e2f98 100644 --- a/services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket/RSocketClientTransport.java +++ b/services-transport-parent/services-transport-rsocket/src/main/java/io/scalecube/services/transport/rsocket/RSocketClientTransport.java @@ -70,7 +70,7 @@ public ClientChannel create(ServiceReference serviceReference) { key -> getCredentials(serviceReference) .flatMap(creds -> connect(key, creds, monoMap)) - .cache() + .cacheInvalidateIf(RSocket::isDisposed) .doOnError(ex -> monoMap.remove(key))); return new RSocketClientChannel(mono, new ServiceMessageCodec(headersCodec, dataCodecs)); }