diff --git a/src/Adaptive.Cluster/Client/AeronCluster.cs b/src/Adaptive.Cluster/Client/AeronCluster.cs index 5b06ccd..bafab8d 100644 --- a/src/Adaptive.Cluster/Client/AeronCluster.cs +++ b/src/Adaptive.Cluster/Client/AeronCluster.cs @@ -2244,7 +2244,20 @@ private void CreateEgressSubscription() egressRegistrationId = ctx.AeronClient().AsyncAddSubscription(ctx.EgressChannel(), ctx.EgressStreamId()); } - egressSubscription = ctx.AeronClient().GetSubscription(egressRegistrationId); + try + { + egressSubscription = ctx.AeronClient().GetSubscription(egressRegistrationId); + } + catch (RegistrationException ex) + { + egressRegistrationId = NULL_VALUE; + + if (ErrorCode.RESOURCE_TEMPORARILY_UNAVAILABLE != ex.ErrorCode()) + { + throw; + } + } + if (null != egressSubscription) { egressPoller = new EgressPoller(egressSubscription, FRAGMENT_LIMIT);