diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
index aefd723..87d4291 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
@@ -21,6 +21,7 @@
 import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.common.ApprovalInfo;
 import com.google.gerrit.extensions.common.ChangeInfo;
+import com.google.gerrit.extensions.registration.DynamicItem;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Change;
 import com.google.gerrit.reviewdb.client.Project;
@@ -32,6 +33,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 class HookArgs {
   interface Factory {
@@ -42,14 +44,14 @@
   final HookMetrics metrics;
   final GitRepositoryManager gitManager;
   final SitePaths sitePaths;
-  final UrlFormatter urlFormatter;
+  final DynamicItem<UrlFormatter> urlFormatter;
 
   private final List<String> args;
 
   @Inject
   HookArgs(
       IdentifiedUser.GenericFactory identifiedUserFactory,
-      UrlFormatter urlFormatter,
+      DynamicItem<UrlFormatter> urlFormatter,
       HookMetrics metrics,
       GitRepositoryManager gitManager,
       SitePaths sitePaths) {
@@ -98,9 +100,12 @@
   public void addUrl(ChangeInfo change) {
     args.add("--change-url");
     if (change != null) {
+      Optional<UrlFormatter> uf = Optional.ofNullable(urlFormatter.get());
       args.add(
-          urlFormatter
-              .getChangeViewUrl(new Project.NameKey(change.project), new Change.Id(change._number))
+          uf.flatMap(
+                  f ->
+                      f.getChangeViewUrl(
+                          new Project.NameKey(change.project), new Change.Id(change._number)))
               .orElse(""));
     } else {
       args.add("");
