Exception Analyzer: stack traces never load (report ID truncated to a JS Number), plus some questions about how it works


Hey,

Two things about the Exception Analyzer in the plugin developer dashboard — one looks like a bug, and a few questions the docs page doesn’t cover.

The stack trace pane never loads

For our plugin the stack trace area is always an empty grey box — every issue, every report, in Chrome and Safari, logged in as the plugin owner. Nothing renders and no error is shown.

The cause looks like an integer precision bug in the frontend. Report IDs are 64-bit, but they’re being round-tripped through a JavaScript Number, which loses the low bits:

real report ID (from the reports index the page itself loads):  2085936216032935936

ID the page then requests: 2085936216032936000

So the request goes to

GET /api/plugins/<pluginId>/exceptions/2085936216032936000/stacktrace  ->  404

and the pane stays empty. You can see it without opening devtools — the rounded ID is right there in the address bar after clicking a report:

.../edit/exception-analyzer?issueId=F:%20RelativePoint.%3Cinit%3E&reportId=2085936216032936000

Requesting the same endpoint with the exact, untruncated ID returns the stack trace with a 200 immediately, so it’s only the ID handling on the way out. Both the reportId query parameter and the /stacktrace request path are affected. Presumably anything that parses these IDs as numbers rather than strings has the same problem.

Questions about how the analyzer works

The docs describe the reporting flow and the metadata collected, but not the delivery side, so I’m not sure how to read our own data:

  1. Is the Exception Analyzer considered experimental / still evolving? The docs mention “in the current version” for the Unresolved/Resolved grouping but say nothing about the feature’s overall status, so I don’t know how much to lean on it.

  2. How and how often are reports delivered? Are they forwarded as they arrive, or aggregated and pushed on a schedule? We see reports appear in bursts with long quiet stretches in between, and I can’t tell whether the quiet periods mean “nothing was reported” or “nothing has been delivered yet”.

  3. Is there any retention or cut-off? Are older reports pruned after some period, or does the dashboard only show a recent window? That would explain some of the gaps.

  4. How are freeze reports (F: prefix) handled? They aren’t mentioned in the docs at all. Are they collected on the same opt-in path as exceptions, or sampled/throttled differently? Most of our reports are freezes, so this matters for interpreting them.

  5. Is any of this available over an API? Being able to pull issues and stack traces programmatically would help a lot for triage — right now every report is a manual click-through.

Happy to provide our plugin ID and specific report IDs privately if that helps reproduce the first item.

Thanks!

Hi again :waving_hand: I have a partial answer to my question. Here is an unofficial md doc describing JetBrains Marketplace API: JetBrains Marketplace API — undocumented endpoint notes · GitHub

Sadly, exceptions page (EA) is not accessible thought it.

The API token is just the token you use to upload now updates, for example.