diff --git a/uw_cfg_common.module b/uw_cfg_common.module
index 002761880987094730df91480033b89eb050ad8e..1288002e3f5bc7f6b558671b7c26dc9c294a945d 100644
--- a/uw_cfg_common.module
+++ b/uw_cfg_common.module
@@ -99,6 +99,48 @@ function uw_cfg_common_entity_presave(EntityInterface $entity) {
       \Drupal::service('plugin.manager.menu.link')->rebuild();
     }
   }
+
+  // On a node entity save, check if the responsive
+  // image has created the derivatives so that things
+  // like hero images will load when no image has yet
+  // been rendered.  If we do not do this, most hero
+  // images will not work.
+  if ($entity->getEntityTypeId() == 'node') {
+
+    // If there is a hero image, continue to process.
+    if ($image = $entity->field_uw_hero_image) {
+
+      // Get the value of the image field.
+      $image = $entity->field_uw_hero_image->getValue();
+
+      // Load the file from the hero image.
+      $file = \Drupal::entityTypeManager()
+        ->getStorage('file')
+        ->load($image[0]['target_id']);
+
+      // Load the image styles that are needed for the hero.
+      $uw_styles = \Drupal::service('uw_cfg_common.uw_service')->uwGetResponsiveImageStyles();
+
+      // Step through each of the image styles and ensure that
+      // the derivative is created.
+      foreach ($uw_styles as $uw_style) {
+
+        // Load the image style.
+        $style = \Drupal::entityTypeManager()
+          ->getStorage('image_style')
+          ->load($uw_style);
+
+        // Get the styled image derivative.
+        $destination = $style->buildUri($file->getFileUri());
+
+        // If the derivative doesn't exist yet (as the image style may have been
+        // added post launch), create it.
+        if (!file_exists($destination)) {
+          $style->createDerivative($file->getFileUri(), $destination);
+        }
+      }
+    }
+  }
 }
 
 /**