diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php
index 04dcb8fc896de6147f2c0cf6a492a09323b08088..cb52949779ff9ee46c81afe937281eed0c12e4a4 100644
--- a/lib/private/legacy/util.php
+++ b/lib/private/legacy/util.php
@@ -336,7 +336,16 @@ class OC_Util {
 	 * @return void
 	 */
 	public static function copyr($source, \OCP\Files\Folder $target) {
+		$logger = \OC::$server->getLogger();
+
+		// Verify if folder exists
 		$dir = opendir($source);
+		if($dir === false) {
+			$logger->error(sprintf('Could not opendir "%s"', $source), ['app' => 'core']);
+			return;
+		}
+
+		// Copy the files
 		while (false !== ($file = readdir($dir))) {
 			if (!\OC\Files\Filesystem::isIgnoredDir($file)) {
 				if (is_dir($source . '/' . $file)) {
@@ -344,7 +353,13 @@ class OC_Util {
 					self::copyr($source . '/' . $file, $child);
 				} else {
 					$child = $target->newFile($file);
-					stream_copy_to_stream(fopen($source . '/' . $file,'r'), $child->fopen('w'));
+					$sourceStream = fopen($source . '/' . $file, 'r');
+					if($sourceStream === false) {
+						$logger->error(sprintf('Could not fopen "%s"', $source . '/' . $file), ['app' => 'core']);
+						closedir($dir);
+						return;
+					}
+					stream_copy_to_stream($sourceStream, $child->fopen('w'));
 				}
 			}
 		}