Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[2.0] Mounting a memo during a held action can crash a render callback

Open
#3,802 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Domain
frontend

Research direction

Start by reproducing the crash in the linked playground, then trace the Solid 2.0 render callback path for a mounted <Show> child whose memo reads a held signal while another attribute changes. The issue names no source files or tests, so locate the relevant callback and add a regression test for the described timing. Done means the attribute update no longer throws or halts reactivity, and the subtree renders when the action settles.

Written by the indexing model from the issue text.

Description

Describe the bug

While an action holds a signal write, mount a child that creates a memo reading that signal and a div whose attributes read the held signal and a separate signal. Changing the separate signal before the action settles crashes the generated render callback and halts reactivity.

Chromium reports:

TypeError: Cannot destructure property 'e' of 'undefined' as it is undefined.
[REACTIVITY_HALTED] An uncaught error halted the reactive system.

Firefox reports TypeError: (destructured parameter) is undefined.

Your Example Website or App

https://s.olid.uk/id/4hhg1oZMQaasPugrwwLnfA

Steps to Reproduce the Bug or Issue
  1. Open the linked playground.
  2. Click Run once.
  3. The action stages a signal write and waits 2 seconds. After 100 ms, the Show child mounts and creates a memo reading that signal. After another 100 ms, a separate signal changes the div's title.
  4. Observe the TypeError and REACTIVITY_HALTED in the console.
Expected behavior

The pending read may hold the subtree's reveal, but updating another attribute should not invoke its render callback with undefined or halt reactivity. The subtree should render normally when the action settles.

Screenshots or Videos

No response

Platform
  • OS: Linux (browser reproduction)
  • Browser: Chromium 153.0.8010.12; Firefox 155.0
Additional context

Solid experimental preview mizulu/solid2@6f77b1b for solid-js, @solidjs/signals, and @solidjs/web.

The reproduction uses three signals, one action, one Show, and one createMemo. No stores, optimistic state, lists, routing, lazy components, or refresh runtime are involved. It uses ordinary 100 ms delays between updates; no manual flush or microtask scheduling. Tailwind is disabled.

Dominant language
TypeScript
Stars
36.1k
Forks
1.1k
Avg merge
10h 7m
Merged PRs (30d)
289

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from solidjs/solid

All issues in solidjs/solid

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.