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.'); } }