Stack trace deminifier
Turn a minified JavaScript stack trace back into original file names, lines and columns using your source maps.
Up to 400,000 characters for the stack trace and maps together, 20 maps and 500 frames. Decoding runs in your browser. Downloads: rewritten stack trace text and JSON report. Paste the trace, then each map after a line such as ==> app.min.js.map <==. Up to 400,000 characters. Review the settings before running.
Your result
How to use Stack trace deminifier
- Paste the stack trace exactly as it was reported.
- Add each source map after a line such as ==> app.min.js.map <==.
- Run the tool.
- Copy the rewritten stack trace or download the JSON report with every frame.
Useful next steps
What it does
Each frame's file, line and column are looked up in the matching source map, and the frame is rewritten with the original source file and position. Function names are kept as they were reported: a source map records the identifier at each position, which is usually the function being called or the property being read rather than the function the frame runs in, so the JSON report lists that identifier separately. Frames that cannot be resolved, including frames with line 0, stay exactly as they were, with a reason in the report.
Formats and matching
V8 (Chrome, Edge and Node.js) frames such as at name (file:line:column) and SpiderMonkey or JavaScriptCore frames such as name@file:line:column are recognised. A frame uses the map whose name without .map, or whose file field, matches the frame's file name. Stack columns count from 1 and source map columns from 0; the lookup takes the closest mapping at or before the column on the same line. Source maps follow the version 3 format, including index maps with embedded sections; a position inside a section but before that section's first mapping stays unresolved.
Limits
A map that belongs to a different build gives wrong positions, so use the map produced with the exact bundle. Maps referenced only by URL are not fetched; paste them instead.