From f3c8fd23c9566d37f4f0b1b079e268d46a56090d Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 26 Jan 2018 19:08:13 +0100
Subject: [PATCH] feat: stringify unknown errors for better visibility (#1449)

feat: stringify unknown errors for better visibility
---
 lib/workers/repository/error.js | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js
index 67fa22c2aa..add300d20d 100644
--- a/lib/workers/repository/error.js
+++ b/lib/workers/repository/error.js
@@ -38,8 +38,26 @@ async function handleError(config, err) {
     return err.message;
   }
   // Swallow this error so that other repositories can be processed
-  logger.error({ err }, `Repository has unknown error`);
+  logger.error(
+    { err },
+    `Repository has unknown error:\n${stringifyError(err, null, '  ')}`
+  );
   // delete branchList to avoid cleaning up branches
   delete config.branchList; // eslint-disable-line no-param-reassign
   return 'unknown-error';
 }
+
+function stringifyError(err, filter, space) {
+  let stringifiedError = '';
+  try {
+    const plainObject = {};
+    Object.getOwnPropertyNames(err).forEach(key => {
+      plainObject[key] = err[key];
+    });
+    stringifiedError = JSON.stringify(plainObject, filter, space);
+  } catch (err2) {
+    // istanbul ignore next
+    logger.warn({ err2 }, 'Error stringifying unknown error');
+  }
+  return stringifiedError;
+}
-- 
GitLab