diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php
index 20758a71f87408df01c152f0749a364d82ab8255..f58431efee555d378eb6658924344471847262e8 100644
--- a/lib/private/Files/Type/Detection.php
+++ b/lib/private/Files/Type/Detection.php
@@ -35,6 +35,7 @@
 namespace OC\Files\Type;
 
 use OCP\Files\IMimeTypeDetector;
+use OCP\ILogger;
 use OCP\IURLGenerator;
 
 /**
@@ -45,6 +46,10 @@ use OCP\IURLGenerator;
  * @package OC\Files\Type
  */
 class Detection implements IMimeTypeDetector {
+
+	public const CUSTOM_MIMETYPEMAPPING = 'mimetypemapping.json';
+	public const CUSTOM_MIMETYPEALIASES = 'mimetypealiases.json';
+
 	protected $mimetypes = [];
 	protected $secureMimeTypes = [];
 
@@ -55,6 +60,9 @@ class Detection implements IMimeTypeDetector {
 	/** @var IURLGenerator */
 	private $urlGenerator;
 
+	/** @var ILogger */
+	private $logger;
+
 	/** @var string */
 	private $customConfigDir;
 
@@ -63,13 +71,16 @@ class Detection implements IMimeTypeDetector {
 
 	/**
 	 * @param IURLGenerator $urlGenerator
+	 * @param ILogger $logger
 	 * @param string $customConfigDir
 	 * @param string $defaultConfigDir
 	 */
 	public function __construct(IURLGenerator $urlGenerator,
+								ILogger $logger,
 								$customConfigDir,
 								$defaultConfigDir) {
 		$this->urlGenerator = $urlGenerator;
+		$this->logger = $logger;
 		$this->customConfigDir = $customConfigDir;
 		$this->defaultConfigDir = $defaultConfigDir;
 	}
@@ -120,9 +131,13 @@ class Detection implements IMimeTypeDetector {
 
 		$this->mimeTypeAlias = json_decode(file_get_contents($this->defaultConfigDir . '/mimetypealiases.dist.json'), true);
 
-		if (file_exists($this->customConfigDir . '/mimetypealiases.json')) {
-			$custom = json_decode(file_get_contents($this->customConfigDir . '/mimetypealiases.json'), true);
-			$this->mimeTypeAlias = array_merge($this->mimeTypeAlias, $custom);
+		if (file_exists($this->customConfigDir . '/' . self::CUSTOM_MIMETYPEALIASES)) {
+			$custom = json_decode(file_get_contents($this->customConfigDir . '/' . self::CUSTOM_MIMETYPEALIASES), true);
+			if (json_last_error() === JSON_ERROR_NONE) {
+				$this->mimeTypeAlias = array_merge($this->mimeTypeAlias, $custom);
+			} else {
+				$this->logger->warning('Failed to parse ' . self::CUSTOM_MIMETYPEALIASES . ': ' . json_last_error_msg());
+			}
 		}
 	}
 
@@ -151,9 +166,13 @@ class Detection implements IMimeTypeDetector {
 		$mimetypeMapping = json_decode(file_get_contents($this->defaultConfigDir . '/mimetypemapping.dist.json'), true);
 
 		//Check if need to load custom mappings
-		if (file_exists($this->customConfigDir . '/mimetypemapping.json')) {
-			$custom = json_decode(file_get_contents($this->customConfigDir . '/mimetypemapping.json'), true);
-			$mimetypeMapping = array_merge($mimetypeMapping, $custom);
+		if (file_exists($this->customConfigDir . '/' . self::CUSTOM_MIMETYPEMAPPING)) {
+			$custom = json_decode(file_get_contents($this->customConfigDir . '/' . self::CUSTOM_MIMETYPEMAPPING), true);
+			if (json_last_error() === JSON_ERROR_NONE) {
+				$mimetypeMapping = array_merge($mimetypeMapping, $custom);
+			} else {
+				$this->logger->warning('Failed to parse ' . self::CUSTOM_MIMETYPEMAPPING . ': ' . json_last_error_msg());
+			}
 		}
 
 		$this->registerTypeArray($mimetypeMapping);
diff --git a/lib/private/Server.php b/lib/private/Server.php
index d16b55ac215dbac94f7367b22bc8d03261434262..dcac72369e4d80882e42090de1ffe95f18d74244 100644
--- a/lib/private/Server.php
+++ b/lib/private/Server.php
@@ -882,6 +882,7 @@ class Server extends ServerContainer implements IServerContainer {
 		$this->registerService(\OCP\Files\IMimeTypeDetector::class, function (Server $c) {
 			return new \OC\Files\Type\Detection(
 				$c->getURLGenerator(),
+				$c->getLogger(),
 				\OC::$configDir,
 				\OC::$SERVERROOT . '/resources/config/'
 			);
diff --git a/tests/lib/Files/Type/DetectionTest.php b/tests/lib/Files/Type/DetectionTest.php
index e522239f00104b16c407a13e81b35f85747780ba..ea8123421132436f56d26e6438ec01ef8c19b738 100644
--- a/tests/lib/Files/Type/DetectionTest.php
+++ b/tests/lib/Files/Type/DetectionTest.php
@@ -22,6 +22,7 @@
 namespace Test\Files\Type;
 
 use OC\Files\Type\Detection;
+use OCP\ILogger;
 use OCP\IURLGenerator;
 
 class DetectionTest extends \Test\TestCase {
@@ -32,6 +33,7 @@ class DetectionTest extends \Test\TestCase {
 		parent::setUp();
 		$this->detection = new Detection(
 			\OC::$server->getURLGenerator(),
+			\OC::$server->getLogger(),
 			\OC::$SERVERROOT . '/config/',
 			\OC::$SERVERROOT . '/resources/config/'
 		);
@@ -114,13 +116,17 @@ class DetectionTest extends \Test\TestCase {
 			->disableOriginalConstructor()
 			->getMock();
 
+		$logger = $this->getMockBuilder(ILogger::class)
+			->disableOriginalConstructor()
+			->getMock();
+
 		//Only call the url generator once
 		$urlGenerator->expects($this->once())
 			->method('imagePath')
 			->with($this->equalTo('core'), $this->equalTo('filetypes/folder.png'))
 			->willReturn('folder.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('dir');
 		$this->assertEquals('folder.svg', $mimeType);
 
@@ -139,7 +145,7 @@ class DetectionTest extends \Test\TestCase {
 			->with($this->equalTo('core'), $this->equalTo('filetypes/folder-shared.png'))
 			->willReturn('folder-shared.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('dir-shared');
 		$this->assertEquals('folder-shared.svg', $mimeType);
 
@@ -159,7 +165,7 @@ class DetectionTest extends \Test\TestCase {
 			->with($this->equalTo('core'), $this->equalTo('filetypes/folder-external.png'))
 			->willReturn('folder-external.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('dir-external');
 		$this->assertEquals('folder-external.svg', $mimeType);
 
@@ -179,7 +185,7 @@ class DetectionTest extends \Test\TestCase {
 			->with($this->equalTo('core'), $this->equalTo('filetypes/my-type.png'))
 			->willReturn('my-type.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('my-type');
 		$this->assertEquals('my-type.svg', $mimeType);
 
@@ -209,7 +215,7 @@ class DetectionTest extends \Test\TestCase {
 				}
 			));
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('my-type');
 		$this->assertEquals('my.svg', $mimeType);
 
@@ -240,7 +246,7 @@ class DetectionTest extends \Test\TestCase {
 				}
 			));
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('foo-bar');
 		$this->assertEquals('file.svg', $mimeType);
 
@@ -259,7 +265,7 @@ class DetectionTest extends \Test\TestCase {
 			->with($this->equalTo('core'), $this->equalTo('filetypes/foo-bar.png'))
 			->willReturn('foo-bar.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('foo-bar');
 		$this->assertEquals('foo-bar.svg', $mimeType);
 		$mimeType = $detection->mimeTypeIcon('foo-bar');
@@ -285,7 +291,7 @@ class DetectionTest extends \Test\TestCase {
 			->with($this->equalTo('core'), $this->equalTo('filetypes/foobar-baz.png'))
 			->willReturn('foobar-baz.svg');
 
-		$detection = new Detection($urlGenerator, $confDir->url(), $confDir->url());
+		$detection = new Detection($urlGenerator, $logger, $confDir->url(), $confDir->url());
 		$mimeType = $detection->mimeTypeIcon('foo');
 		$this->assertEquals('foobar-baz.svg', $mimeType);
 	}