diff --git a/filefield_paths.inc b/filefield_paths.inc
index 52543998f..905f825c0 100644
--- a/filefield_paths.inc
+++ b/filefield_paths.inc
@@ -111,36 +111,46 @@ function filefield_paths_filefield_paths_process_file(ContentEntityInterface $en
       // Finalize file if necessary.
       if ($file->getFileUri() !== $destination) {
         $dirname = $file_system->dirname($destination);
-        if (
-          \Drupal::service('file_system')->prepareDirectory($dirname, FileSystem::CREATE_DIRECTORY)
-          && $new_file = \Drupal::service('file.repository')->move($file, $destination)
-        ) {
-          // Create redirect from old location.
-          if (
-            \Drupal::moduleHandler()->moduleExists('redirect')
-            && !empty($settings['redirect']) && $settings['active_updating']
-          ) {
-            \Drupal::service('filefield_paths.redirect')
-              ->createRedirect($file->getFileUri(), $new_file->getFileUri(), $file->language());
-          }
+        try {
+          $file_system->prepareDirectory($dirname, FileSystem::CREATE_DIRECTORY);
+          try {
+            if ($new_file = \Drupal::service('file.repository')->move($file, $destination)) {
+              // Create redirect from old location.
+              if (
+                \Drupal::moduleHandler()->moduleExists('redirect')
+                && !empty($settings['redirect']) && $settings['active_updating']
+              ) {
+                \Drupal::service('filefield_paths.redirect')
+                  ->createRedirect($file->getFileUri(), $new_file->getFileUri(), $file->language());
+              }
 
-          // Remove any old empty directories.
-          // @TODO - Add test for this.
-          $paths = explode('/', str_replace("{$source_scheme_name}://", '', $file_system->dirname($file->getFileUri())));
-          while ($paths) {
-            if (@$file_system->rmdir("{$source_scheme_name}://" . implode('/', $paths)) == TRUE) {
-              array_pop($paths);
-              continue;
+              // Remove any old empty directories.
+              // @TODO - Add test for this.
+              $paths = explode('/', str_replace("{$source_scheme_name}://", '', $file_system->dirname($file->getFileUri())));
+              while ($paths) {
+                if (@$file_system->rmdir("{$source_scheme_name}://" . implode('/', $paths)) == TRUE) {
+                  array_pop($paths);
+                  continue;
+                }
+                break;
+              }
+            } else {
+              \Drupal::logger('filefield_paths')
+                ->notice(t('The file %old could not be moved to the destination of %new. Ensure your permissions are set correctly.', [
+                  '%old' => $file->getFileUri(),
+                  '%new' => $file->getFileUri(),
+                ]));
             }
-            break;
+          } catch (\Exception $e) {
+            \Drupal::logger('filefield_paths')
+              ->notice(t('The file %old could not be moved to the destination. The file could not be located.', [
+                '%old' => $file->getFileUri(),
+                '%new' => $file->getFileUri(),
+              ]));
           }
-        }
-        else {
+        } catch (\Exception $e) {
           \Drupal::logger('filefield_paths')
-            ->notice(t('The file %old could not be moved to the destination of %new. Ensure your permissions are set correctly.', [
-              '%old' => $file->getFileUri(),
-              '%new' => $file->getFileUri(),
-            ]));
+            ->notice(t('The directory %directory could not be created.', ['%directory' => $dirname]));
         }
       }
     }
