fix: provide useful stacktrace on chunk loading failure #9128
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Error created from load/error event handler has no useful stack trace whatsoever as it's an async event and stack has unwound already at that point.
To have better (sync) stacktrace of what triggered loading of the chunk, create error before stack has unwound and use it and its stacktrace later, in case of an error.
The reason this is useful, is that it allows to trace the root code that triggered problematic load of the chunk. Especially when using systems like Sentry where we don't know exactly how or where given failure has been triggered. This allows to better see the code that triggered the chunk and potentially to figure out the actual problem.
This potentially has some processing overhead as browser needs to create a stacktrace. It's probably not that big though but I haven't done any real testing.
Fixes: #9109
What kind of change does this PR introduce?
bugfix
Did you add tests for your changes?
no. I'm not too familiar with infrastracture. Would need to have more time to do it. Ideally someone with more knowledge would take over if this PR is accepted.
Does this PR introduce a breaking change?
Not that I can think of.
What needs to be documented once your changes are merged?
none