Last updated: March 6, 2026
Source Maps
What Are Source Maps
When JavaScript is shipped to browsers it is typically bundled and minified — all variable names shortened and all code collapsed into a single line. This makes stack traces from production errors nearly impossible to act on. For example, an error in your monitoring may look like:
1at onClick (https://example.com/static/js/main.b1510333.chunk.js:1:1559)
With source maps enabled, Dash0 automatically resolves this into the original source location:
1at onClick (ProductDetails.js:26:11)
How It Works
Dash0 uses source maps to perform this translation. Source maps are files generated by your build tool that record a mapping from each position in a minified file back to the original source file, line, and column.
When Dash0 receives a web event containing a JavaScript stack trace, it:
- Parses each line of the stack trace.
- Downloads the referenced JavaScript file.
- Reads the
//# sourceMappingURL=comment near the end of the file to locate the source map. - Downloads the source map file.
- Resolves each minified line and column back to the original source location.
The original stack trace is always preserved unchanged. Translation happens automatically — no code changes are needed in your application.
Requirements
- You are using the Dash0 Web SDK to capture browser errors.
- Your build tool generates source maps and embeds a
//# sourceMappingURL=reference in the minified JavaScript output. This is the default for tools like Webpack, Vite, esbuild, and Rollup. - Your JavaScript files and source maps are reachable via HTTP(S) either publicly or via a source map integration. Integrations let you configure credentials for private or authenticated assets — your end users will never have access to them.
If stack traces are not being translated, verify that all three requirements above are met. Per-frame errors are shown directly in the UI — see Partial Translations.
Setting Up a Source Map Integration
If your JavaScript files and source maps are publicly accessible, translation works out of the box — no additional configuration is needed beyond deploying the .js.map files alongside your JavaScript files.
Make sure the .js.map file is deployed at the URL referenced by sourceMappingURL. Relative URLs are resolved against the JavaScript file's URL; absolute URLs and inline source maps (data:application/json;base64,...) are also supported.
For private or authenticated assets, create a source map integration to provide Dash0 with the right credentials. Source maps do not need to be public — you can keep them behind authentication so your end users never have access to them.
Create an Integration
- Navigate to Settings -> Integrations
- Click on Add Integration and select Source Map
- Give it a Display Name
- Under URL Prefixes, add the base URL of your JavaScript assets — for example
https://cdn.example.com/static/js/. Every stack trace URL that starts with this prefix will use this integration's credentials. - Choose an Authentication method:
- Basic Authentication — username and password.
- Bearer Token — token value sent as
Authorization: Bearer <token>.
- Optionally add Custom Headers for any additional request headers your CDN requires.
You can create multiple integrations to cover different environments or URL prefixes. For example, one integration for https://cdn.example.com/ and another for https://staging.example.com/.
Viewing Translations
When a stack trace is translated, Dash0 displays the translated version by default in the attributes list. You can switch between the translated and original stack trace at any time using the toggle next to the attribute name.
The original stack trace is always preserved, so you never lose access to the raw minified output.
Partial Translations
If a frame could not be translated, the original minified line is kept in the output and a warning icon is shown next to it. Hovering over the icon shows the reason the translation failed.
| Error | Action |
|---|---|
| JavaScript file not found (404) | Verify the file is deployed and a source map integration covers its URL. |
| Access denied (403) / Authentication required (401) | Add a source map integration with the correct credentials. Applies to both the JavaScript file and the source map. |
| Request timeout / Network error | Check that the file is reachable from the collector. |
| JavaScript file too large / Source map file too large | Split your bundle into smaller chunks to reduce file sizes. |
| No source map reference found in JavaScript file | Configure your build tool to embed a //# sourceMappingURL= comment in the output. |
| Source map not found (404) | Deploy the .js.map file at the URL referenced by sourceMappingURL. |
| Could not parse source map | Verify your build tool is generating a valid source map file. |
| Position not found in source map | The source map has no mapping for this location. This can happen if the source map was generated from a different build than the deployed file. |
| Could not download JavaScript file / Could not load source map | An unexpected error occurred — contact Dash0 support if this persists. |