diff -u b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
--- b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
@@ -83,6 +83,11 @@
$destination = $row->getDestinationProperty($this->configuration['destination_path_property']);
$source = $this->configuration['source_base_path'] . $file;
+ // Ensure the source file exists, if it's a local URI or path.
+ if ($this->isLocalUri($source) && !file_exists($source)) {
+ throw new MigrateException($this->t('File %source does not exist.', ['%source' => $source]));
+ }
+
$dir = $this->getDirectory($destination);
if (!file_prepare_directory($dir, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS)) {
throw new MigrateException($this->t('Could not create directory %dir', ['%dir' => $dir]));
diff -u b/core/modules/migrate/tests/src/Unit/destination/EntityFileTest.php b/core/modules/migrate/tests/src/Unit/destination/EntityFileTest.php
--- b/core/modules/migrate/tests/src/Unit/destination/EntityFileTest.php
+++ b/core/modules/migrate/tests/src/Unit/destination/EntityFileTest.php
@@ -94,7 +94,7 @@
$this->fail('Expected Drupal\migrate\MigrateException when importing ' . $destination);
}
catch (MigrateException $e) {
- $this->assertIdentical($e->getMessage(), 'File ' . $destination . ' could not be copied to public://wontmatter.jpg.');
+ $this->assertIdentical($e->getMessage(), 'File ' . $destination . ' does not exist.');
}
}