[2.0 / next] A direct write does not clear a writable memo's previous error
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript, typescript
- Domain
- frontend
Research direction
Start in packages/signals/src/signals.ts, where the createSignal documentation near line 368 says a direct write should replace the stored error without rerunning the derivation. Read the failed-writable-memo cases and candidate changes in #3886 and the held-error rule in #4085 before touching the write path. Done means a reduced source regression where a write after a throwing initial derivation makes accessor reads, createEffect and the error boundary show the written value.
Written by the indexing model from the issue text.
Description
Describe the bug
A writable memo throws during its initial derivation, and <Errored> shows the error. A button outside the boundary calls its setter with 2, but the boundary continues showing the original error instead of rendering the written value.
Your Example Website or App
https://s.olid.uk/id/PmShIVyvSYWMQLTS5qkkSA
Steps to Reproduce the Bug or Issue
- Open the playground. The boundary shows
Error: boom. - Click Set value to 2.
- The boundary continues showing
Error: boominstead ofValue: 2.
Expected behavior
The direct write should replace the memo's failed outcome with 2, allowing the boundary to recover and render Value: 2 without rerunning the derivation.
Screenshots or Videos
No response
Platform
- OS: Linux
- Browser: Chromium 154.0.8037.57
- Solid: playground pinned to
next@d5e32a9af41c7bfe0bc090f7438ee4297d540b17. A reduced source regression also fails on currentnext@ccd99481deed3ebb567ee11ab7a152ced84d122b.
Additional context
The createSignal documentation says a direct write lands without rerunning the derivation.
The failure also affects ordinary accessor reads and createEffect, which retain the old error after a write. This playground makes it visible through an error boundary.
The failed-writable-memo cases from #3886 are explicitly outside #4085's held-error rule. #3886 contains related regression tests and candidate changes.
- Dominant language
- TypeScript
- Stars
- 36.1k
- Forks
- 1.1k
- Avg merge
- 11h 32m
- Merged PRs (30d)
- 356
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from solidjs/solid
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 14/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 18/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 15/100
Maintainers usually reply within 1 day
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
aws/agentcore-cli#2606 ·
Maintainers usually reply within 1 day
-
ai-driven-qa bug Cosmetic
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
ai-driven-qa bug claude Minor
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
linagora/twake-mail-admin#301 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
reproduced
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
anomalyco/opencode#56038 · 1 comment ·
Maintainers usually reply within 1 day