fix(sveltekit): Ensure source maps deletion is called after source maps upload #14942
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.
This PR fixes a source maps deletion bug in the Sentry SvelteKit SDK reported in #14131.
After debugging this extensively, the root cause turned out to be a timing issue. For SvelteKit, we have to move all invocations of the
writeBundle
hook in the sub-plugins of the original Sentry Vite plugin to thecloseBundle
hook, to ensure that the second build made when the SvelteKit adapter is invoked is also awaited correctly. We did this correctly for the debug id source maps upload plugin but did not do it for the release management and file deletion plugins.The changed order of things caused a deadlock situations due to our deletion plugin waiting on upload and release plugins to finish. Since the deletion plugin was started earlier than the upload plugin, it was awaiting something that wasn't even started yet.
This PR now:
closeBundle
closeBundle
enforce: 'post'
). All of these three things ensure now that the deadlock situation is resolved.closes #14131
fixes #12660