Skip to content

[2.0 / next] A direct write does not clear a writable memo's previous error #4110

Closed

Description

@GabbeV

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

  1. Open the playground. The boundary shows Error: boom.
  2. Click Set value to 2.
  3. The boundary continues showing Error: boom instead of Value: 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 current next@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.

Activity

  1. ryansolid commented on Oct 20, 2026

    @ryansolid
    Member

    Fixed by #4167, now merged to next. It builds on @Neekoras's #4143. A write to an errored writable memo recovers it when the write commits, and until then reads still throw the error instead of returning the old value. The regression tests are in writable-memo-write-clears-error-4110.test.ts. Closing.

    — Claude via Claude Code


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions