diff --git a/package_manager/src/Event/PreOperationStageEvent.php b/package_manager/src/Event/PreOperationStageEvent.php
index 832677a82e8a3454c328e1ad8103622fff9c5ede..e60ef7b28cebaa7827d6cf3ab93359f7777daac5 100644
--- a/package_manager/src/Event/PreOperationStageEvent.php
+++ b/package_manager/src/Event/PreOperationStageEvent.php
@@ -10,6 +10,32 @@ use Drupal\package_manager\ValidationResult;
  */
 abstract class PreOperationStageEvent extends StageEvent {
 
+  /**
+   * The validation results.
+   *
+   * @var \Drupal\package_manager\ValidationResult[]
+   */
+  protected $results = [];
+
+  /**
+   * Gets the validation results.
+   *
+   * @param int|null $severity
+   *   (optional) The severity for the results to return. Should be one of the
+   *   SystemManager::REQUIREMENT_* constants.
+   *
+   * @return \Drupal\package_manager\ValidationResult[]
+   *   The validation results.
+   */
+  public function getResults(?int $severity = NULL): array {
+    if ($severity !== NULL) {
+      return array_filter($this->results, function ($result) use ($severity) {
+        return $result->getSeverity() === $severity;
+      });
+    }
+    return $this->results;
+  }
+
   /**
    * Adds error information to the event.
    */
diff --git a/package_manager/src/Event/StageEvent.php b/package_manager/src/Event/StageEvent.php
index 79a26a5ac3c2c430ebcce2d4f5f5262fcf6ce60e..b585eb846c4965e5a4dd738462ad9fbcc3e26649 100644
--- a/package_manager/src/Event/StageEvent.php
+++ b/package_manager/src/Event/StageEvent.php
@@ -10,13 +10,6 @@ use Symfony\Contracts\EventDispatcher\Event;
  */
 abstract class StageEvent extends Event {
 
-  /**
-   * The validation results.
-   *
-   * @var \Drupal\package_manager\ValidationResult[]
-   */
-  protected $results = [];
-
   /**
    * The stage which fired this event.
    *
@@ -44,23 +37,4 @@ abstract class StageEvent extends Event {
     return $this->stage;
   }
 
-  /**
-   * Gets the validation results.
-   *
-   * @param int|null $severity
-   *   (optional) The severity for the results to return. Should be one of the
-   *   SystemManager::REQUIREMENT_* constants.
-   *
-   * @return \Drupal\package_manager\ValidationResult[]
-   *   The validation results.
-   */
-  public function getResults(?int $severity = NULL): array {
-    if ($severity !== NULL) {
-      return array_filter($this->results, function ($result) use ($severity) {
-        return $result->getSeverity() === $severity;
-      });
-    }
-    return $this->results;
-  }
-
 }
diff --git a/package_manager/src/Stage.php b/package_manager/src/Stage.php
index 756a45a23f7b301760d8a60fce43d31383bb2ec0..4c71210753039c20e25c62ccd079bb7b02258422 100644
--- a/package_manager/src/Stage.php
+++ b/package_manager/src/Stage.php
@@ -14,6 +14,7 @@ use Drupal\package_manager\Event\PostRequireEvent;
 use Drupal\package_manager\Event\PreApplyEvent;
 use Drupal\package_manager\Event\PreCreateEvent;
 use Drupal\package_manager\Event\PreDestroyEvent;
+use Drupal\package_manager\Event\PreOperationStageEvent;
 use Drupal\package_manager\Event\PreRequireEvent;
 use Drupal\package_manager\Event\StageEvent;
 use Drupal\package_manager\Exception\StageException;
@@ -341,9 +342,11 @@ class Stage {
     try {
       $this->eventDispatcher->dispatch($event);
 
-      $results = $event->getResults();
-      if ($results) {
-        $error = new StageValidationException($results);
+      if ($event instanceof PreOperationStageEvent) {
+        $results = $event->getResults();
+        if ($results) {
+          $error = new StageValidationException($results);
+        }
       }
     }
     catch (\Throwable $error) {