Skip to content

2.0.0-beta.14: Server render effects silently swallow thrown errors #2777

Description

@yumemi-thomas

Describe the bug

In Solid 2.0.0-beta.14, errors thrown while executing server render effects are swallowed silently during SSR.
This can make SSR output successful child HTML even though render-time code threw. On the client/hydration path, the same kind of render-effect error would not silently disappear, so this can mask bugs and create server/client divergence.
This report is not saying a server render error must crash the server process. The issue is that the error disappears completely: it does not reach and it is not reported through any visible diagnostic/logging path.

Your Example Website or App

https://stackblitz.com/edit/solidjs-templates-hrrvgs2k?file=src%2Fentry-server.tsx

Steps to Reproduce the Bug or Issue

  1. Open the StackBlitz terminal.
  2. Run npm run repro.
  3. Inspect the rendered HTML/string.
children

Expected behavior

Errors thrown while executing server render effects should not be silently swallowed.

When an <Errored> boundary exists, the error should reach that boundary:

error: server effect boom

The error should still be exposed through a server-side reporting/diagnostic path instead of disappearing silently.

Screenshots or Videos

No response

Platform

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

Additional context

This appears related to packages/solid/src/server/signals.ts, where server effect execution catches and ignores errors:

try {
  // compute/effect work
} catch (err) {
  // Swallow errors from effects on server
}

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