diff --git a/server/src/main/java/io/atomix/copycat/server/state/PassiveState.java b/server/src/main/java/io/atomix/copycat/server/state/PassiveState.java
index <HASH>..<HASH> 100644
--- a/server/src/main/java/io/atomix/copycat/server/state/PassiveState.java
+++ b/server/src/main/java/io/atomix/copycat/server/state/PassiveState.java
@@ -74,7 +74,8 @@ class PassiveState extends ReserveState {
     context.checkThread();
     logRequest(request);
 
-    if (context.getLeader() == null) {
+    Member leader = context.getLeader();
+    if (leader == null) {
       return CompletableFuture.completedFuture(logResponse(ConnectResponse.builder()
         .withStatus(Response.Status.ERROR)
         .withError(CopycatError.Type.NO_LEADER_ERROR)
@@ -85,7 +86,7 @@ class PassiveState extends ReserveState {
 
       return CompletableFuture.completedFuture(ConnectResponse.builder()
         .withStatus(Response.Status.OK)
-        .withLeader(context.getLeader().clientAddress())
+        .withLeader(leader.clientAddress())
         .withMembers(context.getCluster().members().stream()
           .map(Member::clientAddress)
           .filter(m -> m != null)
Store leader in local variable when responding to ConnectRequest in PassiveState.