diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js index 67fa22c2aa7820d6718b45dc1b1f4517f97a6674..add300d20d23607c351cc11a54dc614974136db7 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; +}