diff --git a/src/controllers/errors.js b/src/controllers/errors.js
index 6ab0dc6471..0e61b557cc 100644
--- a/src/controllers/errors.js
+++ b/src/controllers/errors.js
@@ -43,13 +43,14 @@ exports.handleErrors = function (err, req, res, next) { // eslint-disable-line n
 		return res.status(403).type('text/plain').send(err.message);
 	}
 
-	if (parseInt(err.status, 10) === 302 && err.path) {
-		return res.locals.isAPI ? res.status(302).json(err.path) : res.redirect(err.path);
+	var status = parseInt(err.status, 10);
+	if ((status === 302 || status === 308) && err.path) {
+		return res.locals.isAPI ? res.status(status).json(err.path) : res.redirect(err.path);
 	}
 
 	winston.error(req.path + '\n', err.stack);
 
-	res.status(err.status || 500);
+	res.status(status || 500);
 
 	var path = String(req.path || '');
 	if (res.locals.isAPI) {