diff --git a/src/main/java/org/eclipsefoundation/git/eca/api/models/GithubWebhookRequest.java b/src/main/java/org/eclipsefoundation/git/eca/api/models/GithubWebhookRequest.java
index 7ec821ac4ff140f110eda9153b24e9a8003fac55..582bb760b26a7c7cbc9cee3b9eceeb8a51d3b801 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/api/models/GithubWebhookRequest.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/api/models/GithubWebhookRequest.java
@@ -11,6 +11,8 @@
  */
 package org.eclipsefoundation.git.eca.api.models;
 
+import javax.annotation.Nullable;
+
 import org.eclipsefoundation.git.eca.dto.GithubWebhookTracking;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
@@ -31,6 +33,7 @@ public abstract class GithubWebhookRequest {
 
     public abstract Repository getRepository();
 
+    @Nullable
     public abstract PullRequest getPullRequest();
 
     /**
@@ -73,7 +76,7 @@ public abstract class GithubWebhookRequest {
 
         public abstract Builder setRepository(Repository repository);
 
-        public abstract Builder setPullRequest(PullRequest pullRequest);
+        public abstract Builder setPullRequest(@Nullable PullRequest pullRequest);
 
         public abstract GithubWebhookRequest build();
     }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/resource/GithubWebhooksResource.java b/src/main/java/org/eclipsefoundation/git/eca/resource/GithubWebhooksResource.java
index 14a33db9090e7f94dc2b1b951f4bb423a96ed408..f0544cbff6ab89415e7786bf36772979fdc6fd61 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/resource/GithubWebhooksResource.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/resource/GithubWebhooksResource.java
@@ -27,6 +27,7 @@ import javax.ws.rs.QueryParam;
 import javax.ws.rs.ServerErrorException;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
 
 import org.apache.http.HttpStatus;
 import org.eclipsefoundation.core.helper.LoggingHelper;
@@ -83,16 +84,22 @@ public class GithubWebhooksResource extends GithubAdjacentResource {
             return Response.ok().build();
         }
 
+        // check that the pull request isn't somehow missing
+        if (request.getPullRequest() == null) {
+            throw new BadRequestException("Pull request event submitted, but pull request information was missing");
+        }
+        PullRequest pr = request.getPullRequest();
+
         // track the request before we start processing
         GithubWebhookTracking tracking = validationHelper
                 .retrieveAndUpdateTrackingInformation(wrapper, request.getInstallation().getId(), request.getRepository().getFullName(),
-                        request.getPullRequest());
+                        pr);
 
         // start processing the request
         LOGGER.trace("Processing PR event for install {} with delivery ID of {}", request.getInstallation().getId(), deliveryId);
         try {
             // prepare for validation process by pre-processing into standard format
-            ValidationRequest vr = generateRequest(request);
+            ValidationRequest vr = generateRequest(request, pr);
             // process the request
             validationHelper.handleGithubWebhookValidation(request, vr, wrapper);
         } catch (Exception e) {
@@ -160,7 +167,13 @@ public class GithubWebhooksResource extends GithubAdjacentResource {
         try {
             // get the tracking class, convert back to a GH webhook request, and validate the request
             GithubWebhookRequest request = GithubWebhookRequest.buildFromTracking(tracking);
-            boolean isSuccessful = validationHelper.handleGithubWebhookValidation(request, generateRequest(request), wrapper).getPassed();
+            if (request.getPullRequest() == null) {
+                throw new ServerErrorException("Current validation is in a bad state, pull request information missing",
+                        Status.INTERNAL_SERVER_ERROR);
+            }
+            boolean isSuccessful = validationHelper
+                    .handleGithubWebhookValidation(request, generateRequest(request, request.getPullRequest()), wrapper)
+                    .getPassed();
             LOGGER.debug("Revalidation for request for '{}#{}' was {}successful.", sanitizedRepoName, prNo, isSuccessful ? "" : " not");
 
             // build the url for pull request page
@@ -181,12 +194,13 @@ public class GithubWebhooksResource extends GithubAdjacentResource {
      * Generate the validation request for the current GH Webhook request.
      * 
      * @param request the current webhook request for validation
+     * @param pr null checked pull request from Github
      * @return the Validation Request body to be used in validating data
      */
-    private ValidationRequest generateRequest(GithubWebhookRequest request) {
+    private ValidationRequest generateRequest(GithubWebhookRequest request, PullRequest pr) {
         return validationHelper
-                .generateRequest(request.getInstallation().getId(), request.getRepository().getFullName(),
-                        request.getPullRequest().getNumber(), request.getRepository().getHtmlUrl());
+                .generateRequest(request.getInstallation().getId(), request.getRepository().getFullName(), pr.getNumber(),
+                        request.getRepository().getHtmlUrl());
     }
 
 }