sentry-javascript
sentry-javascript copied to clipboard
Sourcemaps not showing correct file names in stack trace
Version
22.3.0
Steps to Reproduce
I have a typescript (4.1.2), react (17.0.2) web application using webpack (5.24.3). I have been following provided instructions to get source maps to work but have had no luck.
Our application uses a basename in our urls which i suspect is the complication here. We use the version (v1.0.4 for example) of the application like this:
http://localhost:8080/v1.0.4/index.html
Source maps work when running in the browser, I can open up dev tools and see the lines and the correct file names that everything happens. However, once i upload the source maps to Sentry the stack trace just says /v1.0.4/main.js.
I am using the webpack plug (SentryWebpackPlugin). I am using the urlPrefix to try and solve the /v1.0.4 difference. I see the source maps stored in the releases archive. They are stored as ~/v1.0.4/main.js ~/v1.0.4/main.js.map etc. as i expected. Here is my webpack.config.js
/* eslint-disable @typescript-eslint/no-var-requires */
const HtmlWebpackPlugin = require("html-webpack-plugin");
const {
ServiceWorkerBuilderPlugin,
} = require("./node_modules/@integrations/web-core/lib/ServiceWorkerBuilderPlugin.js");
const SentryWebpackPlugin = require("@sentry/webpack-plugin");
const path = require("path");
const webpack = require("webpack");
require("dotenv").config();
const defaultConfig = {
entry: "./src/index.tsx",
module: {
rules: [
{
test: /\.(ts|tsx|js|jsx)?$/,
exclude: [path.resolve(__dirname, "test")],
loader: require.resolve("babel-loader"),
},
{
test: /\.(scss|css)$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.(png|svg|jpg|gif|jpeg)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/img",
},
loader: "file-loader",
},
],
},
{
test: /\.(ttf)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/fonts",
},
loader: "file-loader",
},
],
},
{
test: /\.(mp3)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/tracks",
},
loader: "file-loader",
},
],
},
],
},
output: {
filename: "main.js",
path: path.resolve(__dirname, "dist"),
clean: true,
},
plugins: [
new HtmlWebpackPlugin({
template: "./src/index.html",
}),
new ServiceWorkerBuilderPlugin({
inputFile: "./src/service-worker.js",
outputFile: "service-worker.js",
}),
new webpack.EnvironmentPlugin({
SENTRY_DSN: process.env.SENTRY_DSN ?? "",
SENTRY_AUTH_TOKEN: process.env.SENTRY_AUTH_TOKEN ?? "",
SENTRY_DISABLED: process.env.SENTRY_DISABLED ?? "",
ANALYTICS_DISABLED: process.env.ANALYTICS_DISABLED ?? "",
}),
],
resolve: {
modules: [__dirname, "src", "node_modules"],
extensions: ["*", ".js", ".jsx", ".tsx", ".ts"],
alias: {
react: path.resolve("./node_modules/react"),
},
},
devtool: "source-map",
};
const getSentryPlugin = (buildDir) => {
const isSentryDisabled =
!process.env.SENTRY_AUTH_TOKEN ||
!process.env.SENTRY_DSN ||
!process.env.SENTRY_DISABLED ||
process.env.SENTRY_DISABLED?.toLowerCase() === "true";
const release = process.env.RELEASE ?? "v1.0.4";
// check release commit is tagged version, only then create release in Sentry
const canCreateSentryRelease = validatedRelease(release);
return !isSentryDisabled && canCreateSentryRelease
? [
new SentryWebpackPlugin({
org: "org-name",
url: "https://sentry.org-name.com",
release,
authToken: process.env.SENTRY_AUTH_TOKEN,
project: "project-name",
include: [buildDir, "src"],
ext: [".js", ".jsx", ".tsx", ".ts", ".map"],
ignore: [
"node_modules",
"webpack.config.js",
"plopfile.js",
"output",
"test",
],
dist: release,
urlPrefix: `~/${release}`,
}),
]
: [];
};
const generateConfig = (mode) => {
return mode === "production"
? {
...defaultConfig,
mode,
plugins: defaultConfig.plugins.concat(
getSentryPlugin("dist_dev")
),
}
: {
...defaultConfig,
mode,
output: {
...defaultConfig.output,
path: path.resolve(__dirname, "dist_dev"),
},
plugins: defaultConfig.plugins.concat(
getSentryPlugin("dist_dev")
),
devServer: {
historyApiFallback: true,
publicPath: "/v1.0.4/",
openPage: "v1.0.4/index.html",
contentBase: path.resolve(__dirname, "dist_dev"),
hot: true,
open: true,
},
};
};
const createRegex = (regex) => new RegExp(regex);
const validatedRelease = (release) => {
if (!release) {
return false;
}
const commitTagRegex = createRegex("^v\\d+\\.\\d+\\.\\d+$");
const abVersionRegex = createRegex("^@[a-z0-9_]+$");
const isValidTaggedVersion = commitTagRegex.test(release);
const isValidABVersion = abVersionRegex.test(release);
return isValidTaggedVersion || isValidABVersion;
};
module.exports = (env, options) => generateConfig(options.mode);
Here is my simplified Sentry.init call:
Sentry.init({
dsn: sentryDsn,
integrations: [
new Integrations.BrowserTracing({
routingInstrumentation:
Sentry.reactRouterV5Instrumentation(this._history),
}),
new Offline(),
],
release: version,
environment,
debug: environment === "development"
});
Expected Result
To see in the "EXCEPTION" section of the issues, the correct file names and exact lines where the calls were made.
Actual Result
What I see in the issues Exception section:
What i see in Archive for the release version:

Bumping this over to sentry-javascript repo as this seems to have more to do with sourcemaps than with self-hosted (could be wrong).
Hi @jacklovett, can you try using sentry-cli sourcemaps explain --help with the newest version of the Sentry CLI to troubleshoot your issue?
Hi @jacklovett, can you try using
sentry-cli sourcemaps explain --helpwith the newest version of the Sentry CLI to troubleshoot your issue?
Hi @lforst, I am using the SentryWebpackPlugin instead of the sentry-cli. I don't see an option for explain -- help. Maybe you can explain more how i can achieve this? Thanks!
If you dont want to install it globally, run npx @sentry/cli sourcemaps explain <EVENT_ID>
Sorry, i need more information than this. I am not using sentry-cli and i do not know what sentry-cli sourcemaps explain is or how to use it for my use case.
Oh ok, let me be more explicit then. sentry-cli is our automated tool to work with source maps, debug symbols, and the Sentry itself. You can find installation and configuration guides here https://docs.sentry.io/product/cli/
Once you have it installed (or as mentioned above, you can use npx to not install it permanently, but rather use it ad-hoc), and configured with your authentication token, you can use the command mentioned above sourcemaps explain and provide it with the even ID that is not resolved correctly.
You can find this ID on the event page at the top, it looks like that:

So in this case you'd call it with sentry-cli sourcemaps explain 7bd9e01ca79e4922a560adfd7862d77e.
This command should walk through all verification steps for you and tell you where the mistake is. Alternatively you can do all the checks yourself, base on this guide: https://docs.sentry.io/platforms/javascript/sourcemaps/troubleshooting_js/
hmm...every event i try cannot be retrieved giving 404 error. I am using the following command:
npx @sentry/cli sourcemaps explain d9205b144eb54e1783a3ce954cf4d1e6
The event id is taken from the place that you showed in your screenshot.
Error:
DEBUG 2022-06-01 15:17:54.783919 +03:00 > Connection: TE
DEBUG 2022-06-01 15:17:54.783939 +03:00 > TE: gzip
DEBUG 2022-06-01 15:17:54.783958 +03:00 > User-Agent: sentry-cli/2.1.0
DEBUG 2022-06-01 15:17:54.785034 +03:00 > Authorization: Bearer bc56ff16***
DEBUG 2022-06-01 15:17:55.091700 +03:00 < HTTP/1.1 404 Not Found
DEBUG 2022-06-01 15:17:55.091806 +03:00 < Server: nginx/1.17.10
DEBUG 2022-06-01 15:17:55.091837 +03:00 < Date: Wed, 01 Jun 2022 12:17:55 GMT
DEBUG 2022-06-01 15:17:55.091865 +03:00 < Content-Type: application/json
DEBUG 2022-06-01 15:17:55.091894 +03:00 < Content-Length: 50
DEBUG 2022-06-01 15:17:55.091921 +03:00 < Connection: keep-alive
DEBUG 2022-06-01 15:17:55.091944 +03:00 < Allow: GET, HEAD, OPTIONS
DEBUG 2022-06-01 15:17:55.091969 +03:00 < Access-Control-Allow-Methods: GET, HEAD, OPTIONS
DEBUG 2022-06-01 15:17:55.092018 +03:00 < Access-Control-Allow-Headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding
DEBUG 2022-06-01 15:17:55.092053 +03:00 < Access-Control-Expose-Headers: X-Sentry-Error, Retry-After
DEBUG 2022-06-01 15:17:55.092080 +03:00 < Access-Control-Allow-Origin: *
DEBUG 2022-06-01 15:17:55.092105 +03:00 < X-Sentry-Rate-Limit-Remaining: 569
DEBUG 2022-06-01 15:17:55.092131 +03:00 < X-Sentry-Rate-Limit-Limit: 570
DEBUG 2022-06-01 15:17:55.092394 +03:00 < X-Sentry-Rate-Limit-Reset: 1654085876
DEBUG 2022-06-01 15:17:55.092444 +03:00 < Vary: Accept-Language, Cookie
DEBUG 2022-06-01 15:17:55.092469 +03:00 < Content-Language: en
DEBUG 2022-06-01 15:17:55.092491 +03:00 < X-Frame-Options: deny
DEBUG 2022-06-01 15:17:55.092516 +03:00 < X-Content-Type-Options: nosniff
DEBUG 2022-06-01 15:17:55.092538 +03:00 < X-XSS-Protection: 1; mode=block
DEBUG 2022-06-01 15:17:55.092564 +03:00 < Strict-Transport-Security: max-age=15724800; includeSubDomains
DEBUG 2022-06-01 15:17:55.092697 +03:00 response status: 404
✖ Could not retrieve event d9205b144eb54e1783a3ce954cf4d1e6
ℹ Make sure that event ID you used is valid.```
It looks like you are using on-premise instance? (base on https://sentry.org-name.com listed above).
In case you do, you need to update SENTRY_URL as well - https://docs.sentry.io/product/cli/configuration/#configuration-file
Otherwise it's querying sentry.io
I had updated the url in my .sentryclirc file to use the correct on-premise instance.
This issue has gone three weeks without activity. In another week, I will close it.
But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!
"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀
As stated this was the outcome when using the correct on-premise Sentry url. Any other ideas why i would get this error when trying to check the events? :/
@jacklovett Can you share the comment at the bottom of your minified file? Also, what version of self hosted sentry are you on?
The comment is: //# sourceMappingURL=main.js.map
We are using self hosted version: 22.3.0
I am still waiting some help on this. Does my comment and self hosted version help in investigation?
Can you paste what the raw stacktrace looks like in your event? Thanks!
You might need to use the RewriteFrames integration to match up with the source maps.
Where can i get the raw stacktrace?
I suspect RewriteFrames might lead to a solution however i am still confused about how it works. Are there more examples of use cases?
Where can i get the raw stacktrace?
There's a button above the stack trace in the sentry interface:

Here is an example of our raw stack traces:
Error: RuntimeException
at new e(/v1.13.79/main.js:2:198930)
at e.createAsyncOperation(/v1.13.79/main.js:2:200058)
at ? (/v1.13.79/main.js:2:199430)
at new Promise(<anonymous>)
at e.create(/v1.13.79/main.js:2:199395)
at e.<anonymous>(/v1.13.79/main.js:2:123096)
at ? (/v1.13.79/main.js:2:120862)
at Object.next(/v1.13.79/main.js:2:120967)
at ? (/v1.13.79/main.js:2:119879)
at new Promise(<anonymous>)
at r(/v1.13.79/main.js:2:119624)
at e.uploadProfile(/v1.13.79/main.js:2:122994)
at t.<anonymous>(/v1.13.79/main.js:2:41927)
at ? (/v1.13.79/main.js:2:39233)
at Object.next(/v1.13.79/main.js:2:39338)
at ? (/v1.13.79/main.js:2:38250)
at new Promise(<anonymous>)
at o(/v1.13.79/main.js:2:37995)
at t.uploadProfile(/v1.13.79/main.js:2:41815)
at t.<anonymous>(/v1.13.79/main.js:2:110805)
at ? (/v1.13.79/main.js:2:102922)
at Object.next(/v1.13.79/main.js:2:103027)
at i(/v1.13.79/main.js:2:101741)
We finally spotted what might be causing the issue. You seem to be setting the dist flag in the webpack plugin. If you're setting a dist for release artifacts, you must also set the same dist in the Sentry.init() options for the created events to be associated with those artifacts.
If you don't have an actual use for the dist value (maybe you just happened to set it to try it out), I recommend removing that flag from the plugin options altogether.
If that still doesn't fix the problem, two more things:
- Would you mind sharing the event payload JSON? It helps massively while debugging sourcemap issues.
- Have you set up the rewrite frames integration in the meanwhile? The file paths in the stacktrace you shared look a bit short (not entirely sure about this though).
You can find the event payload JSON here:
Isn't the dist flag how we upload release artifacts? And it is these release artifacts which are used for handling the sourcemaps?
I have not used rewrite frames as i don't understand how it is meant to be used. The examples in the documentation didn't make it clear how to use this integration for our use case.
Isn't the dist flag how we upload release artifacts?
The dist flag isn't required at all. You can use the dist flag to segment your release files on a more granular level. This is in the most cases not relevant for JS projects but mobile apps and stuff like that. For example if you have the same app for android and for ios, and the source files of the two apps are all called the same but have different content depending on the platform, you can use the dist flag to discern between ios files and android files.
And it is these release artifacts which are used for handling the sourcemaps?
I don't quite understand the question you're asking here.
If i do not use the dist flag, then I do not see uploaded artifacts present for my release. I am under the impression that these artifacts are needed to revert the sourcemaps in the desired way. Maybe I am wrong?
If i do not use the dist flag, then I do not see uploaded artifacts present for my release.
That doesn't sound right. Is there anything in the logs?
I am under the impression that these artifacts are needed to revert the sourcemaps in the desired way. Maybe I am wrong?
Yeah, we need the artifacts so the minified code can be deminified. The dist option, however, should not have an effect on what files are uploaded.
Can you paste here what your webpack config + Sentry.init looks like after you did the change I suggested?
Its basically the same, just without dist. There was a mistake in my previous test, artifacts do still appear when not using dist. But it did not solve the problem.
Here is the webpack config:
/* eslint-disable @typescript-eslint/no-var-requires */
const HtmlWebpackPlugin = require("html-webpack-plugin");
const {
ServiceWorkerBuilderPlugin,
} = require("./node_modules/@integrations/web-core/lib/ServiceWorkerBuilderPlugin.js");
const SentryWebpackPlugin = require("@sentry/webpack-plugin");
const path = require("path");
const webpack = require("webpack");
require("dotenv").config();
const defaultConfig = {
entry: "./src/index.tsx",
module: {
rules: [
{
test: /\.(ts|tsx|js|jsx)?$/,
exclude: [path.resolve(__dirname, "test")],
loader: require.resolve("babel-loader"),
},
{
test: /\.(scss|css)$/,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.(png|svg|jpg|gif|jpeg)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/img",
},
loader: "file-loader",
},
],
},
{
test: /\.(ttf)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/fonts",
},
loader: "file-loader",
},
],
},
{
test: /\.(mp3)$/,
use: [
{
options: {
name: "[name].[ext]",
outputPath: "assets/tracks",
},
loader: "file-loader",
},
],
},
],
},
output: {
filename: "main.js",
path: path.resolve(__dirname, "dist"),
clean: true,
},
plugins: [
new HtmlWebpackPlugin({
template: "./src/index.html",
}),
new ServiceWorkerBuilderPlugin({
inputFile: "./src/service-worker.js",
outputFile: "service-worker.js",
}),
new webpack.EnvironmentPlugin({
SENTRY_DSN: process.env.SENTRY_DSN ?? "",
SENTRY_AUTH_TOKEN: process.env.SENTRY_AUTH_TOKEN ?? "",
SENTRY_DISABLED: process.env.SENTRY_DISABLED ?? "",
ANALYTICS_DISABLED: process.env.ANALYTICS_DISABLED ?? "",
}),
],
resolve: {
modules: [__dirname, "src", "node_modules"],
extensions: ["*", ".js", ".jsx", ".tsx", ".ts"],
alias: {
react: path.resolve("./node_modules/react"),
},
},
devtool: "source-map",
};
const getSentryPlugin = (buildDir) => {
const isSentryDisabled =
!process.env.SENTRY_AUTH_TOKEN ||
!process.env.SENTRY_DSN ||
!process.env.SENTRY_DISABLED ||
process.env.SENTRY_DISABLED?.toLowerCase() === "true";
const release = process.env.RELEASE ?? "v1.0.0";
// check release commit is tagged version, only then create release in Sentry
const canCreateSentryRelease = validatedRelease(release);
return !isSentryDisabled && canCreateSentryRelease
? [
new SentryWebpackPlugin({
org: "org-name",
url: "https://sentry.org-name.com",
release,
authToken: process.env.SENTRY_AUTH_TOKEN,
project: "sdk-web",
include: buildDir,
ignore: ["node_modules", "webpack.config.js"],
}),
]
: [];
};
const generateConfig = (mode) => {
return mode === "production"
? {
...defaultConfig,
mode,
plugins: defaultConfig.plugins.concat(getSentryPlugin("./dist")),
}
: {
...defaultConfig,
mode,
output: {
...defaultConfig.output,
path: path.resolve(__dirname, "dist_dev"),
},
plugins: defaultConfig.plugins.concat(
getSentryPlugin("./dist_dev")
),
devServer: {
historyApiFallback: true,
publicPath: "/v1.0.0/",
openPage: "v1.0.0/index.html",
contentBase: path.resolve(__dirname, "dist_dev"),
hot: true,
open: true,
},
};
};
const createRegex = (regex) => new RegExp(regex);
const validatedRelease = (release) => {
if (!release) {
return false;
}
const commitTagRegex = createRegex("^v\\d+\\.\\d+\\.\\d+$");
const abVersionRegex = createRegex("^@[a-z0-9_]+$");
const isValidTaggedVersion = commitTagRegex.test(release);
const isValidABVersion = abVersionRegex.test(release);
return isValidTaggedVersion || isValidABVersion;
};
module.exports = (env, options) => generateConfig(options.mode);
and init:
{
dsn: sentryDsn,
integrations: [
new Integrations.BrowserTracing({
tracingOrigins: [
"localhost",
appPath,
/^\//,
],
routingInstrumentation:
Sentry.reactRouterV5Instrumentation(this._history),
}),
new Offline(),
],
release: version,
environment,
debug: environment === "development",
tracesSampleRate: 1.0,
initialScope: {
tags: {
...this._contextInfo,
...this._webContextInfo,
},
},
}
Can you share the event payload as described here? Specifically, the exception field in the JSON containing the stack trace would be of interest. Thanks!
Due to it being pretty long i have added just the exceptions field of the JSON:
"exception":{
"values":[
{
"type":"Error",
"value":"test sentry error",
"stacktrace":{
"frames":[
{
"function":"fulfilled",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46108,
"colno":24,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46154,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46223,
"colno":17,
"in_app":true
},
{
"function":"NavigationController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46905,
"colno":20,
"in_app":true
},
{
"function":"NavigationController.handlePreferenceTestABStep",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46986,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../product-web-core/lib/Controllers/NavigationController/NavigationController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46105,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46126,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46154,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46223,
"colno":17,
"in_app":true
},
{
"function":"NavigationController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46997,
"colno":46,
"in_app":true
},
{
"function":"PreferenceTestController.enterABStep",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48883,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../product-web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47747,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47768,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47796,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47865,
"colno":17,
"in_app":true
},
{
"function":"PreferenceTestController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48903,
"colno":20,
"in_app":true
},
{
"function":"PreferenceTestController.startABTest",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47994,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../product-web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47747,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47768,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47796,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47865,
"colno":17,
"in_app":true
},
{
"function":"PreferenceTestController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48017,
"colno":19,
"in_app":true
}
]
},
"mechanism":{
"type":"generic",
"handled":true
}
}
]
},
Is this an event after or before you made the dist changes? If it's before, can you send a recent payload? Also, can you please send what's inside raw_stacktrace? Thank you!
Debugging this is very cumbersome when we don't have access to all the information and the interface. Would it be an option for you to send an event + artifacts to a free SaaS account of Sentry? That way we can take a look at it ourselves.
This was after the dist change.
raw stacktrace:
Error: test sentry error
at PreferenceTestController.<anonymous>(/v1.0.7/main.js:48017:19)
at step(/v1.0.7/main.js:47865:17)
at Object.next(/v1.0.7/main.js:47796:14)
at ? (/v1.0.7/main.js:47768:67)
at new Promise(<anonymous>)
at __webpack_modules__.../web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter(/v1.0.7/main.js:47747:10)
at PreferenceTestController.startABTest(/v1.0.7/main.js:47994:12)
at PreferenceTestController.<anonymous>(/v1.0.7/main.js:48903:20)
at step(/v1.0.7/main.js:47865:17)
at Object.next(/v1.0.7/main.js:47796:14)
at ? (/v1.0.7/main.js:47768:67)
at new Promise(<anonymous>)
at __webpack_modules__.../web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter(/v1.0.7/main.js:47747:10)
at PreferenceTestController.enterABStep(/v1.0.7/main.js:48883:12)
at NavigationController.<anonymous>(/v1.0.7/main.js:46997:46)
at step(/v1.0.7/main.js:46223:17)
at Object.next(/v1.0.7/main.js:46154:14)
at ? (/v1.0.7/main.js:46126:67)
at new Promise(<anonymous>)
at __webpack_modules__.../web-core/lib/Controllers/NavigationController/NavigationController.js.__awaiter(/v1.0.7/main.js:46105:10)
at NavigationController.handlePreferenceTestABStep(/v1.0.7/main.js:46986:12)
at NavigationController.<anonymous>(/v1.0.7/main.js:46905:20)
at step(/v1.0.7/main.js:46223:17)
at Object.next(/v1.0.7/main.js:46154:14)
at fulfilled(/v1.0.7/main.js:46108:24)
That is not an option unfortunately. I will try to recreate the issue in a different test project though.
I am sorry, I meant we need the values in raw_stacktrace inside the event JSON.
but there is not raw_stacktrace in the JSON :/ Here is the full JSON:
{
"event_id":"9d94d13c57b041758363c2c400232b5d",
"project":10,
"release":"v1.0.7",
"dist":null,
"platform":"javascript",
"message":"",
"datetime":"2022-09-05T13:36:54.089000Z",
"tags":[
[
"_headphoneModel",
"demo1"
],
[
"analyticsDisabled",
"True"
],
[
"analyticsPath",
"https://a3.org.com"
],
[
"apiKey",
"apikey"
],
[
"apiPath",
"https://sdk-backend.org.com"
],
[
"appPath",
"http://localhost:8080"
],
[
"baseVersion",
"v1.0"
],
[
"browser",
"Chrome Mobile 87.0.4280"
],
[
"browser.name",
"Chrome Mobile"
],
[
"device",
"SM-G955U"
],
[
"device.family",
"Samsung SM-G955U"
],
[
"disableVersionSwitch",
"False"
],
[
"environment",
"development"
],
[
"handled",
"yes"
],
[
"hashedApiKey",
"6c793695171e793d7d0080ad7700a2bc50256912cef2492c201e8ecc54b24ab5"
],
[
"installationId",
"i03fb2aeab9a42c0bb2e7a2c736852"
],
[
"language",
"en"
],
[
"level",
"error"
],
[
"manufacturer",
"test_manufacturer"
],
[
"mechanism",
"generic"
],
[
"model",
"test_model"
],
[
"offlineVersion",
"v1.0.0"
],
[
"os",
"Android 8.0.0"
],
[
"os.name",
"Android"
],
[
"region",
"USA"
],
[
"sdkApiVersion",
"2"
],
[
"sdkIntegration",
"client"
],
[
"sdkVersion",
"v1.11.0"
],
[
"release",
"v1.0.7"
],
[
"sentryAuthToken",
"bc56ff16480d4608a59c4f80d387998144e57b4b761748d9a36b34f5b0e90546"
],
[
"sentryDisabled",
"False"
],
[
"sentryDsn",
"https://[email protected]/10"
],
[
"startHeadlessMode",
"False"
],
[
"url",
"http://localhost:8080/v1.0.7/song-select"
],
[
"userAgent",
"Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36"
],
[
"version",
"v1.0.7"
],
[
"webCoreVersion",
"v5.1.10"
]
],
"_meta":{
"breadcrumbs":{
"values":{
"40":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"41":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"42":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"43":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"44":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"45":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"46":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"47":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"48":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"49":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"50":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"54":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"57":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
},
"58":{
"data":{
"arguments":{
"0":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
},
"message":{
"":{
"rem":[
[
"@password:filter",
"s",
0,
10
]
],
"len":67
}
}
}
}
},
"user":{
"ip_address":{
"":{
"rem":[
[
"@anything:remove",
"x"
]
]
}
}
}
},
"_metrics":{
"bytes.ingested.event":23003,
"bytes.stored.event":34849,
"flag.processing.error":true
},
"breadcrumbs":{
"values":[
{
"timestamp":1662384939.554,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::init",
"data":{
"arguments":[
"Application::init"
],
"logger":"console"
}
},
{
"timestamp":1662384939.571,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"__span":"82438b3068b65b43",
"method":"GET",
"status_code":404,
"url":"http://localhost:8080/v1.0/version.txt"
}
},
{
"timestamp":1662384939.573,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::init checkVersion error - ServerError: Not Found",
"data":{
"arguments":[
"Application::init checkVersion error - ServerError: Not Found"
],
"logger":"console"
}
},
{
"timestamp":1662384939.574,
"type":"default",
"category":"console",
"level":"info",
"message":"SentryManager::reportError - ServerError: Not Found",
"data":{
"arguments":[
"SentryManager::reportError - ServerError: Not Found"
],
"logger":"console"
}
},
{
"timestamp":1662384939.586,
"type":"default",
"category":"sentry.event",
"level":"error",
"message":"ServerError: Not Found",
"event_id":"eb272550d9094b009e5097eae549da75"
},
{
"timestamp":1662384939.589,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::init language - en",
"data":{
"arguments":[
"Application::init language - en"
],
"logger":"console"
}
},
{
"timestamp":1662384939.589,
"type":"default",
"category":"console",
"level":"info",
"message":"Translations::storeLanguage - language set to en",
"data":{
"arguments":[
"Translations::storeLanguage - language set to en"
],
"logger":"console"
}
},
{
"timestamp":1662384939.589,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::getStyle()",
"data":{
"arguments":[
"SoundIdMock::getStyle()"
],
"logger":"console"
}
},
{
"timestamp":1662384939.79,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdStyle primaryColor = #1A1818, primaryHighlightColor = #D8D9DA, primaryBackgroundColor = #FFFFFF, primaryAccentColor = #FE3B1F, alternateTextColor = #636569",
"data":{
"arguments":[
"SoundIdStyle primaryColor = #1A1818, primaryHighlightColor = #D8D9DA, primaryBackgroundColor = #FFFFFF, primaryAccentColor = #FE3B1F, alternateTextColor = #636569"
],
"logger":"console"
}
},
{
"timestamp":1662384939.791,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManager::init",
"data":{
"arguments":[
"AudioManager::init"
],
"logger":"console"
}
},
{
"timestamp":1662384939.791,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManager::setDspMode(0)",
"data":{
"arguments":[
"AudioManager::setDspMode(0)"
],
"logger":"console"
}
},
{
"timestamp":1662384939.791,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManagerMock::setDspMode(0)",
"data":{
"arguments":[
"AudioManagerMock::setDspMode(0)"
],
"logger":"console"
}
},
{
"timestamp":1662384940.582,
"type":"default",
"category":"sentry.transaction",
"level":"info",
"message":"39f3e4df689c42b083a4f8d0de94262f",
"event_id":"39f3e4df689c42b083a4f8d0de94262f"
},
{
"timestamp":1662384942.177,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend-org.com/network/test-connection"
}
},
{
"timestamp":1662384942.178,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::started()",
"data":{
"arguments":[
"SoundIdMock::started()"
],
"logger":"console"
}
},
{
"timestamp":1662384942.384,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController::createSDKUIGeneralEvent - init - event(SDKUIOpen)",
"data":{
"arguments":[
"AnalyticsController::createSDKUIGeneralEvent - init - event(SDKUIOpen)"
],
"logger":"console"
}
},
{
"timestamp":1662384942.384,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\"",
"data":{
"arguments":[
"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\""
],
"logger":"console"
}
},
{
"timestamp":1662384942.387,
"type":"default",
"category":"navigation",
"level":"info",
"data":{
"from":"/v1.0.7/index.html",
"to":"/v1.0.7/welcome"
}
},
{
"timestamp":1662384942.389,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::start ui completed",
"data":{
"arguments":[
"Application::start ui completed"
],
"logger":"console"
}
},
{
"timestamp":1662384942.389,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::started()",
"data":{
"arguments":[
"SoundIdMock::started()"
],
"logger":"console"
}
},
{
"timestamp":1662384942.592,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::start completed",
"data":{
"arguments":[
"Application::start completed"
],
"logger":"console"
}
},
{
"timestamp":1662384942.593,
"type":"default",
"category":"console",
"level":"info",
"message":"Application::init completed",
"data":{
"arguments":[
"Application::init completed"
],
"logger":"console"
}
},
{
"timestamp":1662384943.393,
"type":"default",
"category":"sentry.transaction",
"level":"info",
"message":"551de77bedaa4de3b46b828ba1186ab4",
"event_id":"551de77bedaa4de3b46b828ba1186ab4"
},
{
"timestamp":1662384944.313,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManagerMock stopping discovery",
"data":{
"arguments":[
"DeviceManagerMock stopping discovery"
],
"logger":"console"
}
},
{
"timestamp":1662384944.313,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManager::isDiscoveryRunningChanged(false)",
"data":{
"arguments":[
"DeviceManager::isDiscoveryRunningChanged(false)"
],
"logger":"console"
}
},
{
"timestamp":1662384945.313,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManagerMock device connected",
"data":{
"arguments":[
"DeviceManagerMock device connected"
],
"logger":"console"
}
},
{
"timestamp":1662384945.313,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManager::isDeviceConnectedChanged(true)",
"data":{
"arguments":[
"DeviceManager::isDeviceConnectedChanged(true)"
],
"logger":"console"
}
},
{
"timestamp":1662384946.367,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManagerMock device synchronized",
"data":{
"arguments":[
"DeviceManagerMock device synchronized"
],
"logger":"console"
}
},
{
"timestamp":1662384946.368,
"type":"default",
"category":"console",
"level":"info",
"message":"DeviceManager::isDeviceSynchronizedChanged(true)",
"data":{
"arguments":[
"DeviceManager::isDeviceSynchronizedChanged(true)"
],
"logger":"console"
}
},
{
"timestamp":1662384953.738,
"type":"default",
"category":"ui.click",
"level":"info",
"message":"div.button-container > button.button > div.button-content > p.text.mod-medium."
},
{
"timestamp":1662384953.744,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::setNavigationDepth(0)",
"data":{
"arguments":[
"SoundIdMock::setNavigationDepth(0)"
],
"logger":"console"
}
},
{
"timestamp":1662384953.949,
"type":"default",
"category":"navigation",
"level":"info",
"data":{
"from":"/v1.0.7/welcome",
"to":"/v1.0.7/"
}
},
{
"timestamp":1662384954.025,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController::createSDKUIGeneralEvent - init - event(WelcomeButtonClicked)",
"data":{
"arguments":[
"AnalyticsController::createSDKUIGeneralEvent - init - event(WelcomeButtonClicked)"
],
"logger":"console"
}
},
{
"timestamp":1662384954.026,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\"",
"data":{
"arguments":[
"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\""
],
"logger":"console"
}
},
{
"timestamp":1662384954.961,
"type":"default",
"category":"sentry.transaction",
"level":"info",
"message":"91885c47419b4661b6bc9d7fa4d162c7",
"event_id":"91885c47419b4661b6bc9d7fa4d162c7"
},
{
"timestamp":1662384977.937,
"type":"default",
"category":"ui.click",
"level":"info",
"message":"div.button-container > button.button > div.button-content > p.text.mod-medium."
},
{
"timestamp":1662384977.963,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::setNavigationDepth(1000)",
"data":{
"arguments":[
"SoundIdMock::setNavigationDepth(1000)"
],
"logger":"console"
}
},
{
"timestamp":1662384978.166,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundId::navigationDepthChanged(1000, false)",
"data":{
"arguments":[
"SoundId::navigationDepthChanged(1000, false)"
],
"logger":"console"
}
},
{
"timestamp":1662384978.167,
"type":"default",
"category":"console",
"level":"info",
"message":"navigationDepthChanged:: depth - 1000 wasBackPressed = false",
"data":{
"arguments":[
"navigationDepthChanged:: depth - 1000 wasBackPressed = false"
],
"logger":"console"
}
},
{
"timestamp":1662384978.168,
"type":"default",
"category":"navigation",
"level":"info",
"data":{
"from":"/v1.0.7/",
"to":"/v1.0.7/preference-intro"
}
},
{
"timestamp":1662384978.185,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.187,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.193,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.194,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.203,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.205,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.212,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.215,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.303,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.305,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.306,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384978.455,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend.org.com/network/test-connection"
}
},
{
"timestamp":1662384978.664,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend.org.com/network/test-connection"
}
},
{
"timestamp":1662384979.181,
"type":"default",
"category":"sentry.transaction",
"level":"info",
"message":"5cc52dcc5e924721860b633f18429686",
"event_id":"5cc52dcc5e924721860b633f18429686"
},
{
"timestamp":1662384982.211,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384983.021,
"type":"default",
"category":"ui.click",
"level":"info",
"message":"div.button-container > button.button > div.button-content > p.text.mod-medium."
},
{
"timestamp":1662384983.024,
"type":"default",
"category":"console",
"level":"info",
"message":"PreferenceTestController::enterPreferenceTest - init",
"data":{
"arguments":[
"PreferenceTestController::enterPreferenceTest - init"
],
"logger":"console"
}
},
{
"timestamp":1662384983.028,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384983.215,
"type":"default",
"category":"console",
"level":"info",
"message":"[Filtered]",
"data":{
"arguments":[
"[Filtered]"
],
"logger":"console"
}
},
{
"timestamp":1662384983.483,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"POST",
"status_code":200,
"url":"https://sdk-backend.org.com/preference-tests"
}
},
{
"timestamp":1662384983.82,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend.org.com/preference-tests/stub_preference_test_attempt"
}
},
{
"timestamp":1662384983.821,
"type":"default",
"category":"console",
"level":"info",
"message":"[object Object]",
"data":{
"arguments":[
{
"age":66,
"appVersion":"2.0.4",
"computerId":"g0b76c3799255a3b37b9c7a43ea836c62c92d9217",
"device":"iPhone12,1",
"deviceManufacturer":"Apple",
"gender":"male",
"headphoneProfileId":"714c8edcefa88589",
"os":"iOS",
"osVersion":"14.2",
"trackList":"[Array]"
}
],
"logger":"console"
}
},
{
"timestamp":1662384984.254,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"POST",
"status_code":200,
"url":"https://sdk-backend.org.com/preference-tests/stub_preference_test_attempt/step"
}
},
{
"timestamp":1662384984.457,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend.org.com/preference-tests/stub_preference_test_attempt/step/stub_preference_test_step"
}
},
{
"timestamp":1662384984.458,
"type":"default",
"category":"console",
"level":"info",
"message":"[object Object]",
"data":{
"arguments":[
{
"comparisonCount":9,
"comparisonInfo":null,
"prevStepId":"123124",
"state":"active",
"systemVolume":0.82,
"track":"Vivaldi",
"usersChoice":"no-difference"
}
],
"logger":"console"
}
},
{
"timestamp":1662384984.67,
"type":"http",
"category":"fetch",
"level":"info",
"data":{
"method":"GET",
"status_code":200,
"url":"https://sdk-backend.org.com/preference-tests/stub_preference_test_attempt/step/stub_preference_test_step/options"
}
},
{
"timestamp":1662384984.671,
"type":"default",
"category":"console",
"level":"info",
"message":"[object Object],[object Object]",
"data":{
"arguments":[
[
"[Object]",
"[Object]"
]
],
"logger":"console"
}
},
{
"timestamp":1662384984.873,
"type":"default",
"category":"console",
"level":"info",
"message":"No translation found for: sweep7_44100",
"data":{
"arguments":[
"No translation found for: sweep7_44100"
],
"logger":"console"
}
},
{
"timestamp":1662384986.875,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManager::setDspMode(2)",
"data":{
"arguments":[
"AudioManager::setDspMode(2)"
],
"logger":"console"
}
},
{
"timestamp":1662384986.875,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManagerMock::setDspMode(2)",
"data":{
"arguments":[
"AudioManagerMock::setDspMode(2)"
],
"logger":"console"
}
},
{
"timestamp":1662384987.079,
"type":"default",
"category":"console",
"level":"info",
"message":"SoundIdMock::setNavigationDepth(1000)",
"data":{
"arguments":[
"SoundIdMock::setNavigationDepth(1000)"
],
"logger":"console"
}
},
{
"timestamp":1662384987.283,
"type":"default",
"category":"navigation",
"level":"info",
"data":{
"from":"/v1.0.7/preference-intro",
"to":"/v1.0.7/song-select"
}
},
{
"timestamp":1662384987.316,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController::createPreferenceTestEvent - init - PreferenceTestLaunched",
"data":{
"arguments":[
"AnalyticsController::createPreferenceTestEvent - init - PreferenceTestLaunched"
],
"logger":"console"
}
},
{
"timestamp":1662384987.316,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\"",
"data":{
"arguments":[
"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\""
],
"logger":"console"
}
},
{
"timestamp":1662384988.292,
"type":"default",
"category":"sentry.transaction",
"level":"info",
"message":"fe3b7e2b544e4823b16b43f3798c1f1b",
"event_id":"fe3b7e2b544e4823b16b43f3798c1f1b"
},
{
"timestamp":1662384989.649,
"type":"default",
"category":"ui.click",
"level":"info",
"message":"div.row.track-container > p.text.mod-medium.track-name.mod-alternate"
},
{
"timestamp":1662384989.651,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManagerMock::playTrack",
"data":{
"arguments":[
"AudioManagerMock::playTrack"
],
"logger":"console"
}
},
{
"timestamp":1662384989.853,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManager::isPlayingChanged(true)",
"data":{
"arguments":[
"AudioManager::isPlayingChanged(true)"
],
"logger":"console"
}
},
{
"timestamp":1662384989.858,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController::createPreferenceTestEvent - init - TrackSelection",
"data":{
"arguments":[
"AnalyticsController::createPreferenceTestEvent - init - TrackSelection"
],
"logger":"console"
}
},
{
"timestamp":1662384989.859,
"type":"default",
"category":"console",
"level":"info",
"message":"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\"",
"data":{
"arguments":[
"AnalyticsController - Analytics disabled: disableAnalytics(true) - userAllowsAnalytics(true)\""
],
"logger":"console"
}
},
{
"timestamp":1662385013.868,
"type":"default",
"category":"ui.click",
"level":"info",
"message":"div.button-container > button.button > div.button-content > p.text.mod-medium."
},
{
"timestamp":1662385013.876,
"type":"default",
"category":"console",
"level":"info",
"message":"startABTest:: Error: test sentry error",
"data":{
"arguments":[
"startABTest:: Error: test sentry error"
],
"logger":"console"
}
},
{
"timestamp":1662385013.878,
"type":"default",
"category":"console",
"level":"info",
"message":"PreferenceTestController::pause - init",
"data":{
"arguments":[
"PreferenceTestController::pause - init"
],
"logger":"console"
}
},
{
"timestamp":1662385013.878,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManagerMock::pause",
"data":{
"arguments":[
"AudioManagerMock::pause"
],
"logger":"console"
}
},
{
"timestamp":1662385014.083,
"type":"default",
"category":"console",
"level":"info",
"message":"AudioManager::isPlayingChanged(false)",
"data":{
"arguments":[
"AudioManager::isPlayingChanged(false)"
],
"logger":"console"
}
},
{
"timestamp":1662385014.088,
"type":"default",
"category":"console",
"level":"info",
"message":"SentryManager::reportError - Error: test sentry error",
"data":{
"arguments":[
"SentryManager::reportError - Error: test sentry error"
],
"logger":"console"
}
}
]
},
"contexts":{
"browser":{
"name":"Chrome Mobile",
"version":"87.0.4280",
"type":"browser"
},
"device":{
"family":"Samsung SM-G955U",
"model":"SM-G955U",
"brand":"Samsung",
"type":"device"
},
"os":{
"name":"Android",
"version":"8.0.0",
"type":"os"
}
},
"culprit":"PreferenceTestController.<anonymous>(main)",
"environment":"development",
"errors":[
{
"type":"fetch_generic_error",
"value":"<class 'requests.exceptions.ConnectionError'>"
}
],
"exception":{
"values":[
{
"type":"Error",
"value":"test sentry error",
"stacktrace":{
"frames":[
{
"function":"fulfilled",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46108,
"colno":24,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46154,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46223,
"colno":17,
"in_app":true
},
{
"function":"NavigationController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46905,
"colno":20,
"in_app":true
},
{
"function":"NavigationController.handlePreferenceTestABStep",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46986,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../soundid-web-core/lib/Controllers/NavigationController/NavigationController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46105,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46126,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46154,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46223,
"colno":17,
"in_app":true
},
{
"function":"NavigationController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":46997,
"colno":46,
"in_app":true
},
{
"function":"PreferenceTestController.enterABStep",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48883,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../soundid-web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47747,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47768,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47796,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47865,
"colno":17,
"in_app":true
},
{
"function":"PreferenceTestController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48903,
"colno":20,
"in_app":true
},
{
"function":"PreferenceTestController.startABTest",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47994,
"colno":12,
"in_app":true
},
{
"function":"__webpack_modules__.../soundid-web-core/lib/Controllers/PreferenceTestController/PreferenceTestController.js.__awaiter",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47747,
"colno":10,
"in_app":true
},
{
"function":"new Promise",
"filename":"<anonymous>",
"abs_path":"<anonymous>",
"in_app":true
},
{
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47768,
"colno":67,
"in_app":true
},
{
"function":"Object.next",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47796,
"colno":14,
"in_app":true
},
{
"function":"step",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":47865,
"colno":17,
"in_app":true
},
{
"function":"PreferenceTestController.<anonymous>",
"module":"main",
"filename":"/v1.0.7/main.js",
"abs_path":"http://localhost:8080/v1.0.7/main.js",
"lineno":48017,
"colno":19,
"in_app":true
}
]
},
"mechanism":{
"type":"generic",
"handled":true
}
}
]
},
"fingerprint":[
"{{ default }}"
],
"grouping_config":{
"enhancements":"eJybzDRxY3J-bm5-npWRgaGlroGxrpHxBABcYgcZ",
"id":"newstyle:2019-10-29"
},
"hashes":[
"53f230e1449a48655cec540a00dfc014"
],
"key_id":"11",
"level":"error",
"location":"/v1.0.7/main.js",
"logger":"",
"metadata":{
"display_title_with_tree_label":false,
"filename":"/v1.0.7/main.js",
"function":"PreferenceTestController.<anonymous>",
"type":"Error",
"value":"test sentry error"
},
"nodestore_insert":1662385016.321859,
"received":1662385014.584112,
"request":{
"url":"http://localhost:8080/v1.0.7/song-select",
"headers":[
[
"User-Agent",
"Mozilla/5.0 (Linux; Android 8.0.0; SM-G955U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Mobile Safari/537.36"
]
]
},
"sdk":{
"name":"sentry.javascript.react",
"version":"6.19.7",
"integrations":[
"InboundFilters",
"FunctionToString",
"TryCatch",
"Breadcrumbs",
"GlobalHandlers",
"LinkedErrors",
"Dedupe",
"UserAgent",
"BrowserTracing",
"Offline"
],
"packages":[
{
"name":"npm:@sentry/react",
"version":"6.19.7"
}
]
},
"timestamp":1662385014.089,
"title":"Error: test sentry error",
"type":"error",
"user":{
"ip_address":null
},
"version":"7"
}