diff --git a/aeron-cluster/src/main/java/io/aeron/cluster/service/ClientSession.java b/aeron-cluster/src/main/java/io/aeron/cluster/service/ClientSession.java
index <HASH>..<HASH> 100644
--- a/aeron-cluster/src/main/java/io/aeron/cluster/service/ClientSession.java
+++ b/aeron-cluster/src/main/java/io/aeron/cluster/service/ClientSession.java
@@ -169,6 +169,11 @@ public class ClientSession
         this.isClosing = true;
     }
 
+    void resetClosing()
+    {
+        isClosing = false;
+    }
+
     void disconnect()
     {
         CloseHelper.close(responsePublication);
diff --git a/aeron-cluster/src/main/java/io/aeron/cluster/service/ClusteredServiceAgent.java b/aeron-cluster/src/main/java/io/aeron/cluster/service/ClusteredServiceAgent.java
index <HASH>..<HASH> 100644
--- a/aeron-cluster/src/main/java/io/aeron/cluster/service/ClusteredServiceAgent.java
+++ b/aeron-cluster/src/main/java/io/aeron/cluster/service/ClusteredServiceAgent.java
@@ -419,6 +419,7 @@ class ClusteredServiceAgent implements Agent, Cluster
             if (Role.LEADER == role)
             {
                 session.connect(aeron);
+                session.resetClosing();
             }
             else
             {
[Java] Reset closing status on client session in service on role change to leader so they can be closed in new term if the attempt happened just before leadership change.