Skip to content

2.0.0-beta.14: Rejected async boundary inside <Reveal> stalls sibling reveal during SSR streaming #2776

Description

@yumemi-thomas

Describe the bug

In Solid 2.0.0-beta.14, an async rejection inside a <Reveal> group can prevent later sibling boundaries from being activated, even after those later siblings successfully resolve and stream their HTML.

In order="sequential", the reveal frontier appears to stop at the rejected boundary. The later sibling's HTML is present in the stream, but its activation script is never emitted, so the client can remain on the fallback.

Your Example Website or App

https://stackblitz.com/edit/solidjs-templates-zhexq4wa?file=package.json

Steps to Reproduce the Bug or Issue

  1. Open the StackBlitz terminal.
  2. Run npm run repro.
  3. Inspect the final streamed output.
  4. Check whether the second boundary's content streamed.
  5. Check whether reveal activation calls were emitted.
has second content: true
activation calls: 0

Expected behavior

Expected logs:

has second content: true
activation calls: 1

Screenshots or Videos

No response

Platform

  • OS: macOS
  • Runtime: Node.js
  • Version: current next at d8921ac1

Additional context

The second boundary's HTML is streamed into a template, but without the activation call it can remain stuck behind LOAD-B.

This appears related to the server reveal/error path: the success path advances reveal, but the rejection path does not appear to release the reveal frontier.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions