diff --git a/core/modules/image/src/Plugin/migrate/source/d6/ImageCachePreset.php b/core/modules/image/src/Plugin/migrate/source/d6/ImageCachePreset.php
index 8c563f0..7745772 100644
--- a/core/modules/image/src/Plugin/migrate/source/d6/ImageCachePreset.php
+++ b/core/modules/image/src/Plugin/migrate/source/d6/ImageCachePreset.php
@@ -14,7 +14,8 @@
  * Drupal 6 imagecache presets source from database.
  *
  * @MigrateSource(
- *   id = "d6_imagecache_presets"
+ *   id = "d6_imagecache_presets",
+ *   source_provider = "imagecache"
  * )
  */
 class ImageCachePreset extends DrupalSqlBase {
diff --git a/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php b/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
index 68efb34..48fab16 100644
--- a/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
+++ b/core/modules/image/src/Tests/Migrate/d6/MigrateImageCacheTest.php
@@ -47,6 +47,21 @@ public function testSourcePlugin() {
   }
 
   /**
+   * Test imagecache table absent.
+   */
+  public function testMissingTable() {
+    $database = Database::getConnection('default', 'migrate');
+    $database->schema()->dropTable('imagecache_preset');
+    try {
+      $this->executeMigration('d6_imagecache_presets');
+      $this->fail('Did not catch expected PDOException.');
+    }
+    catch (\PDOException $e) {
+      $this->pass('Caught expected PDOException when imagecache_preset table is not present.');
+    }
+  }
+
+  /**
    * Test basic passing migrations.
    */
   public function testPassingMigration() {
