In a Typescript Node application, bundled with webpack, I’m seeing Sentry provide strange results when processing the sent raw stacktrace against the uploaded source maps.
Frames end up pointing at positions inside the .map file, rather than the expected source code file. This is not happening in all cases, but seems to be happening with library code rather than my own.
An example raw stacktrace frame is as follows:
{
"function": "s",
"abs_path": "app:///bundle.js",
"pre_context": [
" * overview es6-promise - a tiny implementation of Promises/A+.",
" * copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)",
" * license Licensed under MIT license",
" * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE",
" * version v4.2.8+1e68dce6"
],
"module": "dist:bundle",
"filename": "app:///bundle.js",
"lineno": 29,
"colno": 13968,
"in_app": false,
"data": {
"orig_in_app": 1
},
"context_line": "{snip} n new(n||(n=Promise))((function(o,i){function s(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c {snip}"
}
This appears to be correct vs the source in terms of line/col positions etc. Other frames for the same file are successfully mapped to the correct source code and displayed in Sentry.
The resulting frame from the ‘stackframe’ property based on this is obviously wrong. The abs_ path is the source map file, and the context line is from there too - this is completely different to the context line provided in the raw_stackframe Frame.
{
"function": "s",
"abs_path": "app:///bundle.js.map",
"module": "dist:bundle",
"in_app": false,
"lineno": 1,
"colno": 26,
"data": {
"sourcemap": "app:///bundle.js.map",
"orig_in_app": 1
},
"context_line": "{\"version\":3,\"sources\":[\"webpack:///webpack/bootstrap\",\"webpack:///./node_modules/tslib/tslib.es6.js\",\"webpack:///./node_modules/@sentry/uti {snip}"
}
It might well be I’ve got something wrong in my config somewhere, but this looks like an odd result - I’d expect an error rather than this mapping if something was awry with the uploaded source maps.
Happy to provide a sample repo / more info if it helps.