diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php
index 3ad2932e597b1ca432666f59a895678f6bb89e46..8e968ca453de6d35ded05652db05e4a61af1b604 100644
--- a/lib/private/Files/FileInfo.php
+++ b/lib/private/Files/FileInfo.php
@@ -148,10 +148,12 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
 	}
 
 	/**
-	 * @return int
+	 * Get FileInfo ID or null in case of part file
+	 *
+	 * @return int|null
 	 */
 	public function getId() {
-		return $this->data['fileid'];
+		return isset($this->data['fileid']) ? (int)  $this->data['fileid'] : null;
 	}
 
 	/**
@@ -193,7 +195,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
 	 */
 	public function getSize() {
 		$this->updateEntryfromSubMounts();
-		return isset($this->data['size']) ? $this->data['size'] : 0;
+		return isset($this->data['size']) ? (int) $this->data['size'] : 0;
 	}
 
 	/**
@@ -201,7 +203,7 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
 	 */
 	public function getMTime() {
 		$this->updateEntryfromSubMounts();
-		return $this->data['mtime'];
+		return (int) $this->data['mtime'];
 	}
 
 	/**
@@ -224,11 +226,11 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
 	 * @return int
 	 */
 	public function getPermissions() {
-		$perms = $this->data['permissions'];
+		$perms = (int) $this->data['permissions'];
 		if (\OCP\Util::isSharingDisabledForUser() || ($this->isShared() && !\OC\Share\Share::isResharingAllowed())) {
 			$perms = $perms & ~\OCP\Constants::PERMISSION_SHARE;
 		}
-		return $perms;
+		return (int) $perms;
 	}
 
 	/**
diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php
index 8eeb8df08ce0fe936f0c2ce820128961f3020890..f0f21087bbe3b841da83c64dcf0cf36cf9095204 100644
--- a/lib/public/Files/FileInfo.php
+++ b/lib/public/Files/FileInfo.php
@@ -144,7 +144,7 @@ interface FileInfo {
 	/**
 	 * Get the file id of the file or folder
 	 *
-	 * @return int
+	 * @return int|null
 	 * @since 7.0.0
 	 */
 	public function getId();