diff --git a/BUILD b/BUILD
index 4beff6e..10896bf 100644
--- a/BUILD
+++ b/BUILD
@@ -15,6 +15,7 @@
         "Gerrit-Module: com.ericsson.gerrit.plugins.highavailability.Module",
         "Gerrit-HttpModule: com.ericsson.gerrit.plugins.highavailability.HttpModule",
         "Gerrit-InitStep: com.ericsson.gerrit.plugins.highavailability.Setup",
+        "Gerrit-ReloadMode: restart",
         "Implementation-Title: high-availability plugin",
         "Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/high-availability",
     ],
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java
index d48df46..0d25d92 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/ExecutorProvider.java
@@ -35,7 +35,7 @@
       WorkQueue workQueue, int threadPoolSize, String threadNamePrefix, long scheduleDelayMsec) {
     executor =
         new ScheduledWithDelayExecutorService(
-            workQueue.createQueue(threadPoolSize, threadNamePrefix), scheduleDelayMsec);
+            workQueue.createQueue(threadPoolSize, threadNamePrefix, true), scheduleDelayMsec);
   }
 
   @Override
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java
index 1db3721..c1b0ef3 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexModule.java
@@ -20,13 +20,13 @@
 import com.google.gerrit.extensions.events.GroupIndexedListener;
 import com.google.gerrit.extensions.events.ProjectIndexedListener;
 import com.google.gerrit.extensions.registration.DynamicSet;
-import com.google.inject.AbstractModule;
+import com.google.gerrit.lifecycle.LifecycleModule;
 import com.google.inject.Scopes;
 import com.google.inject.TypeLiteral;
 import com.google.inject.assistedinject.FactoryModuleBuilder;
 import dev.failsafe.FailsafeExecutor;
 
-public class IndexModule extends AbstractModule {
+public class IndexModule extends LifecycleModule {
 
   @Override
   protected void configure() {
@@ -38,6 +38,7 @@
         .annotatedWith(ForwardedIndexExecutor.class)
         .to(ForwardedIndexExecutorProvider.class)
         .in(Scopes.SINGLETON);
+    listener().to(ForwardedIndexExecutorProvider.class);
 
     bind(new TypeLiteral<FailsafeExecutor<Boolean>>() {})
         .annotatedWith(ForwardedBatchIndexExecutor.class)
@@ -47,7 +48,7 @@
         .annotatedWith(ForwardedBatchIndexExecutor.class)
         .to(ForwardedBatchIndexExecutorProvider.class)
         .in(Scopes.SINGLETON);
-
+    listener().to(ForwardedBatchIndexExecutorProvider.class);
     DynamicSet.bind(binder(), ChangeIndexedListener.class)
         .to(IndexEventHandler.class)
         .in(Scopes.SINGLETON);
diff --git a/src/test/docker/gerrit/Dockerfile b/src/test/docker/gerrit/Dockerfile
index 02c3af1..d18e060 100644
--- a/src/test/docker/gerrit/Dockerfile
+++ b/src/test/docker/gerrit/Dockerfile
@@ -11,7 +11,7 @@
     nfs-utils \
     && yum -y clean all
 
-ENV GERRIT_BRANCH master
+ENV GERRIT_BRANCH stable-3.13
 
 # Add gerrit user
 RUN adduser -p -m --uid 1000 gerrit --home-dir /home/gerrit
@@ -42,13 +42,17 @@
     /var/gerrit/lib/global-refdb.jar
 
 ADD --chown=gerrit:gerrit \
-    "https://gerrit-ci.gerritforge.com/job/plugin-zookeeper-refdb-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/zookeeper-refdb/zookeeper-refdb.jar" \
+    "https://gerrit-ci.gerritforge.com/job/plugin-zookeeper-refdb-gh-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/zookeeper-refdb/zookeeper-refdb.jar" \
     /var/gerrit/plugins/zookeeper-refdb.jar
 
 ADD --chown=gerrit:gerrit \
     "https://gerrit-ci.gerritforge.com/view/Plugins-master/job/module-index-elasticsearch-bazel-master/lastSuccessfulBuild/artifact/bazel-bin/plugins/index-elasticsearch/index-elasticsearch.jar" \
     /var/gerrit_plugins/index-elasticsearch.jar
 
+ADD --chown=gerrit:gerrit \
+    "https://gerrit-ci.gerritforge.com/job/plugin-healthcheck-bazel-$GERRIT_BRANCH/lastSuccessfulBuild/artifact/bazel-bin/plugins/healthcheck/healthcheck.jar" \
+    /var/gerrit/plugins/healthcheck.jar
+
 ADD --chown=gerrit:gerrit ./wait-for-it.sh /bin
 
 # Change user
diff --git a/src/test/docker/haproxy/haproxy.cfg b/src/test/docker/haproxy/haproxy.cfg
index 07a6746..a068802 100644
--- a/src/test/docker/haproxy/haproxy.cfg
+++ b/src/test/docker/haproxy/haproxy.cfg
@@ -44,15 +44,15 @@
     balance source
     timeout connect 10s
     timeout server 5m
-    server gerrit_ssh_01 gerrit-01:29418 check port 8080 inter 10s fall 3 rise 2
-    server gerrit-ssh_02 gerrit-02:29418 check port 8080 inter 10s fall 3 rise 2
+    server gerrit_ssh_01 gerrit-01:29418 check port 8080 inter 1s fall 3 rise 2
+    server gerrit-ssh_02 gerrit-02:29418 check port 8080 inter 1s fall 3 rise 2
 
 backend gerrit_http_nodes
     mode http
     balance source
     option forwardfor
-    default-server inter 10s fall 3 rise 2
-    option httpchk GET /config/server/version HTTP/1.0
+    default-server inter 1s fall 3 rise 2
+    option httpchk GET /config/server/healthcheck~status HTTP/1.0
     http-check expect status 200
     server gerrit_01 gerrit-01:8080 check
     server gerrit_02 gerrit-02:8080 check
@@ -61,8 +61,8 @@
     mode http
     balance source
     option forwardfor
-    default-server inter 10s fall 3 rise 2
-    option httpchk GET /config/server/version HTTP/1.0
+    default-server inter 1s fall 3 rise 2
+    option httpchk GET /config/server/healthcheck~status HTTP/1.0
     http-check expect status 200
     server gerrit_01 gerrit-01:8080 check
     server gerrit_02 gerrit-02:8080 check
