Skip to content

fix: ensure <svelte:boundary> properly removes error content in production mode #15793

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged

Conversation

zeroberry
Copy link
Contributor

fixes #15674

When DEV=false, the should_rethrow_error check wasn't being performed, which led to errors during the initial mount not triggering destroy_effect. This prevented proper removal of elements inside the boundary. I belive this issue relates to commit 10897ac.

To address this, I've moved the DEV-specific logic into an explicit if block to distinguishes between DEV and non-DEV behaviors, ensuring consistency across both scenarios.

I couldn't run test with DEV=false because DEV is controlled by the NODE_ENV=production via esm-env. So I've added a test case to simulate a similar condition by creating an error scenario where component_context is null.

Before submitting the PR, please make sure you do the following

  • It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
  • Prefix your PR title with feat:, fix:, chore:, or docs:.
  • This message body should clearly illustrate what problems it solves.
  • Ideally, include a test that fails without this PR but passes with it.
  • If this PR changes code within packages/svelte/src, add a changeset (npx changeset).

Tests and linting

  • Run the tests with pnpm test and lint the project with pnpm lint

Copy link

changeset-bot bot commented Apr 18, 2025

🦋 Changeset detected

Latest commit: d65d85b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
svelte Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Member

@Rich-Harris Rich-Harris left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is great, thank you!

Copy link
Contributor

Playground

pnpm add https://pkg.pr.new/svelte@15793

@Rich-Harris Rich-Harris merged commit b2d5787 into sveltejs:main Apr 18, 2025
9 checks passed
@github-actions github-actions bot mentioned this pull request Apr 18, 2025
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BUG: <svelte:boundary> not working when error occurs inside #if block (only in production build)
2 participants