Sentry Issues is Not Referring to Offline Source Map

Sentry version: Sentry 20.12.0.dev 0d924458
OS:

  • Virtualization: kvm
  • Operating System: CentOS Linux 8 (Core)
  • CPE OS Name: cpe:/o:centos:centos:8
  • Kernel: Linux 4.18.0-193.14.2.el8_2.x86_64
  • Architecture: x86-64

I had searched the similar issues on the Internet. Unfortunately, I can’t found any possible solutions although quite many of same cases online.

I uploaded the project source map to my Sentry server and delete it before deploy to cloud.
I assume it will take the Sentry artifacts while issue happens, but the actual result is it refer to a 404 source map in my cloud server.


As you can see, the JS file and source map are uploaded.
To prevent I was missed configuring anything, I did referred to the Sentry source map troubleshooting doc.

  1. Verify a release is configured in your SDK
    Yes, the release tag is “release-20201215” and the source map are uploaded to “release-20201215”


  2. Verify artifacts are uploaded
    Yes, all the files are uploaded as screenshot above shown.

  3. Verify sourceMappingURL is present
    Yes, it is present as screenshot above shown.

  4. Verify artifact names match sourceMappingURL value
    Yes, I already compare the rules listed with my own URL, it fits with the first case.

  5. Verify artifact names match stack trace frames
    Yes, match as the screenshot above shown.

  6. Verify artifacts are uploaded before errors occur
    Yes, always double confirm while tests on different solutions.

  7. Verify your source maps are built correctly
    Yes, check the webpack build logs as well, all files are uploaded successfully.

  8. Verify your source maps work locally
    Yes, verified, works as usual.

  9. Verify your source files are not too large
    Yes, check the screenshot above.

  10. Verify artifacts are not gzipped


    Yes, it is a json file.

  11. Verify workers are sharing the same volume as web (if running as docker on premise)
    Yes, they are sharing the same volume.
    Check the link for docker config printed through command docker-compose config

I spent my whole day for solving this issue but still have no idea which part is wrong. Please give me a hand :sob: Do let me know any info needed.

Blech, no fun @TNGD-YQ! :confounded:

What’s your build system? Are you starting with one of the four “common tools” linked on https://docs.sentry.io/platforms/javascript/sourcemaps/?

Yes, Im using the webpack plugin to upload my source map.

Below is my sentry config for init and webpack.
The reason why I didnt use .sentryclirc is because I have multiple server to isolate the sandbox data and production data.

I already reset all the auth token permissions to Admin level, seems like problem is not on the internal integration auth token.

{
  "online": {
    "url": "https://prod.xyz.com",
    "org": "xyz",
    "dsn": "https://secret@prod.xyz.com/2",
    "project": "profile",
    "authToken": "secret"
  },
  "offline": {
    "url": "https://dev.xyz.com",
    "org": "tngd",
    "dsn": "https://secret@dev.xyz.com/2",
    "project": "profile",
    "authToken": "secret"
  }
}
if(isProduction) {
   // STAGE_NAME => DEV/TEST/PRE/PROD
    const { url, authToken, org, project } = sentryConfig[
      process.env.STAGE_NAME === 'PROD' ? 'online' : 'offline'
    ];
    webpackConfig.plugins.push(
      // upload sourcemaps of assets to sentry
      new SentryWebpackPlugin({
        url,
        org,
        project,
        authToken,
        include: './dist',
        release: pkg.release,
        ignore: ['node_modules', 'webpack.config.js', 'static', 'test'],
      }),
    );
}

We are facing the exact same problem. We are using webpack to build our project, artifacts are uploaded in the release and have correct names. I have gone twice through the “Troubleshooting” section in the documentation, and everything just seems to be OK.

The only problem is that Sentry keeps trying to fetch source maps from the external server and ignores the artifacts (We have 404s too, as we remove the source maps from the external server).

I’m very curious about the solution because I’ve spent almost two days trying to figure it out and nothing helped.

@chadwhitacre Hi can you help on this issue :pray:
Or is Sentry has any paid support service?

OK Problem solved, I review back all possible root causes and found it.
The root cause mentioned in Verify artifact names match sourceMappingURL value section. (But not exactly the same as my case)

Let’s say link below is my JS file and its source map online:
https://a.b.com/s/project/asset/1.js
https://a.b.com/s/project/asset/1.js.map (removed after uploaded to Sentry)

In Sentry, check the source map in release you will found that the source map labelled as:
~/asset/1.js.map

The character ~ represent the domain hostname, https://a.b.com, in another word, the source map uploaded to Sentry is:
https://a.b.com/asset/1.js.map

That is the reason why Sentry is not referring to sourcemap uploaded in my case.

Solution

se urlPrefix in sentry webpack plugin: ~/s/project/

Re-upload and hit error again, you will see the error stack show as expected.

Problem solved.

@TNGD-YQ What do you have at the end of 1.js file? Is it just this?
//# sourceMappingURL=1.js.map

Or is there anything else?

yes @mkormos.
image

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.