diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
index 6df4b9d..9775643 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
@@ -219,9 +219,17 @@
 
     @Override
     protected List<Node> loadSubNodes() throws ConfigInvalidException, IOException, OrmException {
-      cachedNodes = new SubNodeAdder().getSubNodes();
+      List<Node> nodes = new SubNodeAdder().getSubNodes();
       properties.expansionComplete();
-      return cachedNodes;
+      if (!properties.isSubNodeReloadRequired()) {
+        cachedNodes = nodes;
+      } else {
+        cachedNodeByTask.clear();
+        nodes.stream()
+            .filter(n -> n != null && !n.isChange())
+            .forEach(n -> cachedNodeByTask.put(n.task.key(), n));
+      }
+      return nodes;
     }
 
     /* The task needs to be refreshed before a node is used, however
@@ -240,14 +248,6 @@
         isDuplicate |= duplicateKeys.contains(task.duplicateKey);
         duplicateKeys.add(task.duplicateKey);
       }
-
-      if (cachedNodes != null && properties.isSubNodeReloadRequired()) {
-        cachedNodeByTask.clear();
-        cachedNodes.stream()
-            .filter(n -> n != null && !n.isChange())
-            .forEach(n -> cachedNodeByTask.put(n.task.key(), n));
-        cachedNodes = null;
-      }
     }
 
     @Override
