diff --git a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java index f58a926723d..cfa2eb27e70 100644 --- a/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java +++ b/src/main/java/org/tikv/common/region/AbstractRegionStoreClient.java @@ -203,11 +203,14 @@ private Boolean seekLeaderStore(BackOffer backOffer) { "update leader using switchLeader logic from store[%d] to store[%d]", region.getLeader().getStoreId(), peer.getStoreId())); // update region cache - region = regionManager.updateLeader(region, peer.getStoreId()); - // switch to leader store - store = currentLeaderStore; - updateClientStub(); - return true; + TiRegion result = regionManager.updateLeader(region, peer.getStoreId()); + if (result != null) { + region = result; + // switch to leader store + store = currentLeaderStore; + updateClientStub(); + } + return false; } } else { // no leader found, some response does not return normally, there may be network partition.