diff options
author | Thomas Huang <tmashuang@users.noreply.github.com> | 2018-05-01 05:37:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-01 05:37:22 +0800 |
commit | 3180b69b974f8ffc0d6546a647725d1bf8539483 (patch) | |
tree | f66de97601e859214c3d59eee45c38b337393342 /app/scripts/lib/setupRaven.js | |
parent | 099fc0917dd5d281b60e2879bd1f555fe0988981 (diff) | |
parent | 477063a5a0e9f218af2a49886c44a9bc153c13d3 (diff) | |
download | tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar.gz tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar.bz2 tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar.lz tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar.xz tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.tar.zst tangerine-wallet-browser-3180b69b974f8ffc0d6546a647725d1bf8539483.zip |
Merge pull request #4140 from MetaMask/v4.6.1
Version 4.6.1
Diffstat (limited to 'app/scripts/lib/setupRaven.js')
-rw-r--r-- | app/scripts/lib/setupRaven.js | 50 |
1 files changed, 34 insertions, 16 deletions
diff --git a/app/scripts/lib/setupRaven.js b/app/scripts/lib/setupRaven.js index 48b941c3d..b1b67f771 100644 --- a/app/scripts/lib/setupRaven.js +++ b/app/scripts/lib/setupRaven.js @@ -23,23 +23,16 @@ function setupRaven(opts) { release, transport: function(opts) { const report = opts.data - // simplify certain complex error messages - if (report.exception && report.exception.values) { - report.exception.values.forEach(item => { - let errorMessage = item.value - // simplify ethjs error messages - errorMessage = extractEthjsErrorMessage(errorMessage) - // simplify 'Transaction Failed: known transaction' - if (errorMessage.indexOf('Transaction Failed: known transaction') === 0) { - // cut the hash from the error message - errorMessage = 'Transaction Failed: known transaction' - } - // finalize - item.value = errorMessage - }) + try { + // handle error-like non-error exceptions + nonErrorException(report) + // simplify certain complex error messages (e.g. Ethjs) + simplifyErrorMessages(report) + // modify report urls + rewriteReportUrls(report) + } catch (err) { + console.warn(err) } - // modify report urls - rewriteReportUrls(report) // make request normally client._makeRequest(opts) }, @@ -49,6 +42,31 @@ function setupRaven(opts) { return Raven } +function nonErrorException(report) { + // handle errors that lost their error-ness in serialization + if (report.message.includes('Non-Error exception captured with keys: message')) { + if (!(report.extra && report.extra.__serialized__)) return + report.message = `Non-Error Exception: ${report.extra.__serialized__.message}` + } +} + +function simplifyErrorMessages(report) { + if (report.exception && report.exception.values) { + report.exception.values.forEach(item => { + let errorMessage = item.value + // simplify ethjs error messages + errorMessage = extractEthjsErrorMessage(errorMessage) + // simplify 'Transaction Failed: known transaction' + if (errorMessage.indexOf('Transaction Failed: known transaction') === 0) { + // cut the hash from the error message + errorMessage = 'Transaction Failed: known transaction' + } + // finalize + item.value = errorMessage + }) + } +} + function rewriteReportUrls(report) { // update request url report.request.url = toMetamaskUrl(report.request.url) |