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 501e9db..98170f7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
@@ -229,7 +229,7 @@
   public class Node extends NodeList {
     public class Invalid extends Node {
       @Override
-      public void refreshTask() throws ConfigInvalidException, StorageException {}
+      public void refreshTask() {}
 
       @Override
       public Task getDefinition() {
@@ -305,7 +305,7 @@
     /* The task needs to be refreshed before a node is used, however
     subNode refreshing can wait until they are fetched since they may
     not be needed. */
-    public void refreshTask() throws ConfigInvalidException, StorageException {
+    public void refreshTask() {
       this.path = new LinkedList<>(parent.path);
       String key = key();
       isDuplicate = path.contains(key);
@@ -647,8 +647,7 @@
     return statistics;
   }
 
-  protected static List<Node> refresh(List<Node> nodes)
-      throws ConfigInvalidException, StorageException {
+  protected static List<Node> refresh(List<Node> nodes) {
     for (Node node : nodes) {
       node.refreshTask();
     }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/properties/Properties.java b/src/main/java/com/googlesource/gerrit/plugins/task/properties/Properties.java
index 9f82dba..591773a 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/properties/Properties.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/properties/Properties.java
@@ -15,7 +15,6 @@
 package com.googlesource.gerrit.plugins.task.properties;
 
 import com.google.common.collect.ImmutableSet;
-import com.google.gerrit.exceptions.StorageException;
 import com.google.gerrit.server.query.change.ChangeData;
 import com.googlesource.gerrit.plugins.task.TaskConfig;
 import com.googlesource.gerrit.plugins.task.TaskConfig.NamesFactory;
@@ -85,7 +84,7 @@
 
   /** Use to expand properties specifically for Tasks. */
   @SuppressWarnings("try")
-  public Task getTask(ChangeData changeData) throws StorageException {
+  public Task getTask(ChangeData changeData) {
     try (StopWatch stopWatch =
         StopWatch.builder()
             .enabled(statistics != null)
