diff --git a/WORKSPACE b/WORKSPACE
index 24670df..6f4edea 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
 load("//:bazlets.bzl", "load_bazlets")
 
 load_bazlets(
-    commit = "f96f4bce9ffafeaa200fc009a378921c512fcb0a",
+    commit = "a52e3f381e2fe2a53f7641150ff723171a2dda1e",
 )
 
 load(
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index d574618..3a5ab10 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -1,16 +1,16 @@
 load("//tools/bzl:maven_jar.bzl", "maven_jar")
 
 def external_plugin_deps():
-    AUTO_VALUE_VERSION = "1.7"
+    AUTO_VALUE_VERSION = "1.7.4"
 
     maven_jar(
         name = "auto-value",
         artifact = "com.google.auto.value:auto-value:" + AUTO_VALUE_VERSION,
-        sha1 = "fe8387764ed19460eda4f106849c664f51c07121",
+        sha1 = "6b126cb218af768339e4d6e95a9b0ae41f74e73d",
     )
 
     maven_jar(
         name = "auto-value-annotations",
         artifact = "com.google.auto.value:auto-value-annotations:" + AUTO_VALUE_VERSION,
-        sha1 = "5be124948ebdc7807df68207f35a0f23ce427f29",
+        sha1 = "eff48ed53995db2dadf0456426cc1f8700136f86",
     )
diff --git a/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java b/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
index 23bfcfc..5bfccd5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/depends/on/ChangeMessageStore.java
@@ -86,7 +86,7 @@
    * <p>return empty set means no dependencies found.
    */
   public Set<DependsOn> load(Change.Id cid) {
-    ChangeNotes changeNote = changeNotesFactory.createChecked(cid);
+    ChangeNotes changeNote = changeNotesFactory.createCheckedUsingIndexLookup(cid);
     List<ChangeMessage> messages = cmUtil.byChange(changeNote);
     List<ChangeMessage> sortedChangeMessages =
         messages.stream()
@@ -135,7 +135,7 @@
     ReviewInput review = new ReviewInput();
     review.message = Strings.emptyToNull(comment.toString());
     ChangeNotes changeNotes =
-        changeNotesFactory.createChecked(patchSetId.changeId());
+        changeNotesFactory.createCheckedUsingIndexLookup(patchSetId.changeId());
     ChangeResource changeResource = changeResourceFactory.create(changeNotes, currentUser);
     PatchSet patchSet = changeNotes.load().getPatchSets().get(patchSetId);
     try {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/depends/on/CoreListener.java b/src/main/java/com/googlesource/gerrit/plugins/depends/on/CoreListener.java
index 53f79ff..9b66a07 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/depends/on/CoreListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/depends/on/CoreListener.java
@@ -51,9 +51,9 @@
           Optional<Id> destId = Change.Id.tryParse(Integer.toString(change.number));
           if (sourceId.isPresent() && destId.isPresent()) {
             Change sourceChange =
-                changeNotesFactory.createChecked(sourceId.get()).getChange();
+                changeNotesFactory.createCheckedUsingIndexLookup(sourceId.get()).getChange();
             Change destChange =
-                changeNotesFactory.createChecked(destId.get()).getChange();
+                changeNotesFactory.createCheckedUsingIndexLookup(destId.get()).getChange();
             propagator.propagateFromSourceToDestination(sourceChange, destChange);
           }
         } catch (InvalidChangeOperationException | NoSuchChangeException e) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/depends/on/Propagator.java b/src/main/java/com/googlesource/gerrit/plugins/depends/on/Propagator.java
index dfbb2e1..5047e8b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/depends/on/Propagator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/depends/on/Propagator.java
@@ -60,7 +60,7 @@
     if (changeKey != null) {
       return changeKey;
     }
-    Change c = changeNotesFactory.createChecked(dep.id()).getChange();
+    Change c = changeNotesFactory.createCheckedUsingIndexLookup(dep.id()).getChange();
     if (c != null) {
       return c.getKey();
     }
diff --git a/test/docker/gerrit/Dockerfile b/test/docker/gerrit/Dockerfile
index e35f98f..67ddfa4 100755
--- a/test/docker/gerrit/Dockerfile
+++ b/test/docker/gerrit/Dockerfile
@@ -1,4 +1,4 @@
-FROM gerritcodereview/gerrit:3.2.10-ubuntu20
+FROM gerritcodereview/gerrit:3.5.0.1-ubuntu20
 
 USER root
 
