---
title: Upload source maps to un-minify JS errors
source: https://docs.newrelic.com/docs/browser/browser-monitoring/browser-pro-features/upload-source-maps-un-minify-js-errors
---

Our [browser monitoring](https://docs.newrelic.com/docs/browser/new-relic-browser/getting-started/introduction-new-relic-browser) supports the uploading of source maps.

Source maps support is primarily useful for "decoding" minified JavaScript. Minified JavaScript results in mostly useless error stack traces on browser's **Errors** page. Uploading source maps converts these errors to understandable stack traces, with useful references to code lines. This feature might also be useful for bundled or transpiled JavaScript code.

Browser gives you two options for using source maps:

1.  Upload source maps via the browser UI
2.  Publish source maps to browser via the API

This document will explain the first method: how to upload source maps via the UI, along with general [troubleshooting help](#troubleshoot). For instructions on using the API method, see [Push source maps via the API](https://docs.newrelic.com/docs/browser/new-relic-browser/browser-pro-features/upload-source-maps-api/).

## Import source maps via the New Relic UI [#source-map-ui]

You can drag and drop, or upload, a source map file into the browser UI to associate it with a specific JavaScript file. New Relic will then convert minified stack traces into un-minified traces and source code visible on the Errors page.

1.  Download your source map on your local machine.
2.  Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > Browser > (select an app) > Errors**, then click on an error group. (Do not select a group labeled **Errors without a stack trace**.)
3.  In the **Stack trace** section, click the **Upload source map**.
4.  In the file finder pop-up, select your source file. An error frame with a gray strip on the left side indicates minified JS. A blue strip indicates it has had a source map applied.

Other JS error frame features include:

| **If you want to...**                   | **Do this...**                                                                                                                                                                                   |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| See more of the surrounding code        | Select `Show 10 more lines above/below` to view the code before or after the code in the stack trace.                                                                                            |
| See original, minified file information | - For individual frame info: Next to the frame's source line and column, mouse over the  ellipsis. - For raw data of the entire stack trace: At the top of the error tab, select **&lt;/> Raw**. |
| Remove a source map                     | From an expanded stack trace frame, select **Remove file**.                                                                                                                                      |

## Troubleshooting [#troubleshoot]

### Stack traces are still minified [#still-minified]

If you have uploaded source maps to New Relic and still see minified stack traces, there are a few things to check. Using the API is the best way to investigate potential issues, by [listing or deleting published source maps](https://docs.newrelic.com/docs/push-source-maps-api#publish).

| **Typical problems**                                                                 | **Troubleshooting tips**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| URL mismatch                                                                         | Each frame in the stack trace is associated with a specific JavaScript URL. That URL must match the JavaScript URL that was used when publishing the source map. Ensure that these URLs match exactly.                                                                                                                                                                                                                                                                                                    |
| Release name/ID mismatch                                                             | If the JavaScript URL is not versioned when you deploy your frontend assets, a release name and release ID must be specified using the [`newrelic.addRelease` API method](https://docs.newrelic.com/docs/browser-api-newrelicaddrelease), and also when publishing your source maps. Ensure that these strings match exactly.                                                                                                                                                                             |
| 409 error: `Combination of javascriptUrl, releaseName, and releaseId must be unique` | If a source map file for a particular JavaScript URL is uploaded without a release name or ID specified, New Relic treats the URL as a unique identifier. To resolve this, delete the source map that has NULL release name and ID values and re-upload all versions for that URL including those parameters. This will allow multiple versions of source maps for a particular JS URL.                                                                                                                   |
| Missing `SourcesContent` component                                                   | Your mapping file must contain the `SourcesContent` component for New Relic to un-minify your stack traces. If you have uploaded your map successfully and are still not seeing un-minified code, check the original source map for this component. If you can't find it, regenerate the source map so the component is included, and upload your map to New Relic. If the `SourcesContent` component is not added, an error similar to `Whoops, that was the wrong file. Please try again.` will appear. |
| 400 error: `Invalid source map`                                                      | This error occurs when one of the following happens: - The source map contains invalid JSON or doesn't follow the required schema. - A directory was uploaded instead of a file. To fix this: - Make sure the source map file contains valid JSON and follows the required schema. - Upload a single source map file, not a directory.                                                                                                                                                                    |

### Can't generate source maps [#generate-maps]

Having trouble even generating source maps? Every build system has its own instructions for generating source maps. For more specific details, please see the documentation for your particular tool. Below are source map generation instructions for two popular build systems:

**Generate source maps with UglifyJS**

**Generate source maps using UglifyJS:** When "uglifying" source files, specify a source map file name and include the original source content:

Starting on version v3.12.5:

````bash
uglifyjs [source files]   \ 
     -o bundle.min.js   \ 
     -c -m \
     --source-map "includeSources=true"
```

For older versions:

```bash
uglifyjs [source files]   \ 
     -o bundle.min.js   \ 
     --source-map bundle.min.js.map   \ 
     --source-map-include-sources   \ 
     -c -m
```

````

**Generate source maps with webpack**

**Generate source maps using [Webpack](https://webpack.github.io/docs/configuration.html#devtool):** In your production webpack config, simply specify `source-map` for the `config.devtool` property. The `sourceMapFilename` property of `config.output` is optional and defaults to `[name].js.map`.

````js
devtool: 'source-map', 
output: { 
     path: path.join(__dirname, 'dist'), 
     filename: '[name].js', 
     sourceMapFilename: '[name].js.map', 
},
```

````
