Hosting / Uploading
Source maps can be either:
- Served publicly over HTTP alongside your source files.
- Uploaded directly to Sentry (recommended).
Hosting Source Map Files
When Sentry encounters such a directive, it will resolve the source map URL relative the source file in which it is found, and attempt an HTTP request to fetch it.
http://example.org/js/app.min.js. And in that file, on the last line, the following directive is found:
Sentry will attempt to fetch
app.js.map from http://example.org/js/app.js.map.
Alternatively, during source map generation you can specify a fully qualified URL where your source maps are located:
While making source maps available to Sentry from your servers is the easiest integration, it is not always advisable:
- Sentry may not always be able to reach your servers.
- If you do not specify versions in your asset URLs, there may be a version mismatch
- The additional latency may mean that source mappings are not available for all errors.
For these reasons, it is recommended to upload source maps to Sentry beforehand (see below).
Working Behind a Firewall
Secure Access to Source Maps
Uploading Source Maps to Sentry
Except for webpack, the recommended way to upload source maps is using Sentry CLI. If you have used Sentry Wizard to set up your project, it has already created all necessary configuration to upload source maps. Otherwise, follow the CLI configuration docs to set up your project.
Now you need to set up your build system to create a release, and attach the various source files. For Sentry to de-minify your stack traces you must provide both the minified files (e.g. app.min.js) and the corresponding source maps. In case the source map files do not contain your original source code (
sourcesContent), you must additionally provide the original source files. (Alternatively, sentry-cli will automatically embed the sources (if missing) into your source maps if you pass the
Sentry uses Releases to match the correct source maps to your events. To create a new release, run the following command (e.g. during publishing):
$ sentry-cli releases new <release_name>
Note the release name must be unique within your organization and match the
release option in your SDK initialization code. Then, use the
upload-sourcemaps command to scan a folder for source maps, process them and upload them to Sentry:
$ sentry-cli releases files <release_name> upload-sourcemaps /path/to/files
This command will upload all files ending in .js and .map to the specified release. If you wish to change these extensions – e.g. to upload typescript sources – use the
$ sentry-cli releases files <release_name> upload-sourcemaps --ext ts --ext map /path/to/files
Validating source maps with Sentry CLI
Until now, the release is in a draft state (“unreleased”). Once all source maps have been uploaded and your app has been published successfully, finalize the release with the following command:
$ sentry-cli releases finalize <release_name>
For convenience, you can alternatively pass the
--finalize flag to the
new command which will immediately finalize the release.
Note: You dont have to upload the source files (ref’d by source maps), but without them the grouping algorithm will not be as strong, and the UI will not show any contextual source.
Additional information can be found in the Releases API documentation.