diff --git a/java/com/google/gerrit/plugins/checks/api/PostCheck.java b/java/com/google/gerrit/plugins/checks/api/PostCheck.java
index cf7cbd3..18f29d7 100644
--- a/java/com/google/gerrit/plugins/checks/api/PostCheck.java
+++ b/java/com/google/gerrit/plugins/checks/api/PostCheck.java
@@ -108,12 +108,9 @@
     Check updatedCheck;
     CheckUpdate checkUpdate = toCheckUpdate(input);
     if (!check.isPresent()) {
-      checkers
-          .getChecker(checkerUuid)
-          .orElseThrow(
-              () ->
-                  new UnprocessableEntityException(
-                      String.format("checker %s not found", checkerUuid)));
+      if (!checkers.getChecker(checkerUuid).isPresent()) {
+        throw new UnprocessableEntityException(String.format("checker %s not found", checkerUuid));
+      }
       updatedCheck =
           checksUpdate.get().createCheck(key, checkUpdate, input.notify, input.notifyDetails);
     } else {
diff --git a/java/com/google/gerrit/plugins/checks/db/NoteDbChecksUpdate.java b/java/com/google/gerrit/plugins/checks/db/NoteDbChecksUpdate.java
index e9cb9bb..47de092 100644
--- a/java/com/google/gerrit/plugins/checks/db/NoteDbChecksUpdate.java
+++ b/java/com/google/gerrit/plugins/checks/db/NoteDbChecksUpdate.java
@@ -215,9 +215,9 @@
 
   private void assertCheckerIsPresent(CheckerUuid checkerUuid)
       throws ConfigInvalidException, IOException {
-    checkers
-        .getChecker(checkerUuid)
-        .orElseThrow(() -> new IOException(String.format("checker %s not found", checkerUuid)));
+    if (!checkers.getChecker(checkerUuid).isPresent()) {
+      throw new IOException(String.format("checker %s not found", checkerUuid));
+    }
   }
 
   private boolean updateNotesMap(
