diff --git a/src/plugins.js b/src/plugins.js
index 653edee5fe..f11ed63494 100644
--- a/src/plugins.js
+++ b/src/plugins.js
@@ -213,8 +213,8 @@ Plugins.list = function (matching, callback) {
 	require('request')(url, {
 		json: true,
 	}, function (err, res, body) {
-		if (err) {
-			winston.error('Error parsing plugins', err);
+		if (err || (res && res.statusCode !== 200)) {
+			winston.error('Error loading ' + url, err || body);
 			return Plugins.normalise([], callback);
 		}
 
@@ -225,7 +225,7 @@ Plugins.list = function (matching, callback) {
 Plugins.normalise = function (apiReturn, callback) {
 	var pluginMap = {};
 	var dependencies = require(path.join(nconf.get('base_dir'), 'package.json')).dependencies;
-	apiReturn = apiReturn || [];
+	apiReturn = Array.isArray(apiReturn) ? apiReturn : [];
 	for (var i = 0; i < apiReturn.length; i += 1) {
 		apiReturn[i].id = apiReturn[i].name;
 		apiReturn[i].installed = false;