diff --git a/lib/autoloader.php b/lib/autoloader.php
index dd09c3b9cb56d03a72bcf664c5e3ab3035f69750..41a040b3f548f1f03ee861f59d5a59c5d33b0f60 100644
--- a/lib/autoloader.php
+++ b/lib/autoloader.php
@@ -27,6 +27,8 @@
 
 namespace OC;
 
+use \OCP\AutoloadNotAllowedException;
+
 class Autoloader {
 	private $useGlobalClassPath = true;
 
@@ -129,7 +131,7 @@ class Autoloader {
 				return true;
 			}
 		}
-		throw new \Exception('Path not allowed: '. $fullPath);
+		throw new AutoloadNotAllowedException($fullPath);
 	}
 
 	/**
diff --git a/lib/private/backgroundjob/joblist.php b/lib/private/backgroundjob/joblist.php
index f297bccbc7db157770ec7e9ff4c8d587c54dbe82..deadadfb77e378bf071b84eaeb9c83a0bd2f5a6f 100644
--- a/lib/private/backgroundjob/joblist.php
+++ b/lib/private/backgroundjob/joblist.php
@@ -26,6 +26,7 @@
 namespace OC\BackgroundJob;
 
 use OCP\BackgroundJob\IJobList;
+use OCP\AutoloadNotAllowedException;
 
 class JobList implements IJobList {
 	/**
@@ -185,15 +186,20 @@ class JobList implements IJobList {
 		/**
 		 * @var Job $job
 		 */
-		if (!class_exists($class)) {
-			// job from disabled app or old version of an app, no need to do anything
-			return null;
+		try {
+			if (!class_exists($class)) {
+				// job from disabled app or old version of an app, no need to do anything
+				return null;
+			}
+			$job = new $class();
+			$job->setId($row['id']);
+			$job->setLastRun($row['last_run']);
+			$job->setArgument(json_decode($row['argument'], true));
+			return $job;
+		} catch (AutoloadNotAllowedException $e) {
+			// job is from a disabled app, ignore
 		}
-		$job = new $class();
-		$job->setId($row['id']);
-		$job->setLastRun($row['last_run']);
-		$job->setArgument(json_decode($row['argument'], true));
-		return $job;
+		return null;
 	}
 
 	/**
diff --git a/lib/public/autoloadnotallowedexception.php b/lib/public/autoloadnotallowedexception.php
new file mode 100644
index 0000000000000000000000000000000000000000..edb7121c0653d4d2a87676f6a45285fd77e72704
--- /dev/null
+++ b/lib/public/autoloadnotallowedexception.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * @author Robin McCorkell <rmccorkell@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+namespace OCP;
+
+/**
+ * Exception for when a not allowed path is attempted to be autoloaded
+ * @since 8.2.0
+ */
+class AutoloadNotAllowedException extends \DomainException {
+	/**
+	 * @param string $path
+	 * @since 8.2.0
+	 */
+	public function __construct($path) {
+		parent::__construct('Autoload path not allowed: '.$path);
+	}
+}
+