STORE_WRITE_OUTSIDE_SETTER
Store proxy written, deleted from, or defined on outside its setter; the write is ignored (once per store object and key).
What you saw
- Kind:
write - Severity:
warn(code that works but is structurally wrong or expensive)
The console report opens with [STORE_WRITE_OUTSIDE_SETTER] and the message, then an in line naming the owners that enclose the subject, root first, and an at line with the source location when the code was compiled with one.
In a captured artifact the same finding is an event with code: "STORE_WRITE_OUTSIDE_SETTER", ownerPath, and loc.
Diagnostics explains each line.
Why it fires
A store proxy was written, deleted from, or had a property defined on it outside its setter — store.n = 5, store.items.push(x), delete store.user — and the write was ignored.
Stores are read-only outside the setter's draft; nothing changed and nothing re-ran.
How to fix it
Repair: make the write inside the setter, setStore(s => { s.n = 5 }) (nested paths and array methods work on the draft: s.items.push(x), delete s.user).
Once per store object and key; data.operation is set, defineProperty or deleteProperty.
In tests
captureArtifact from @solidjs/diagnostics runs a scenario with the diagnostics channel open and returns the events it saw.
expectNoDiagnostics(artifact) fails while STORE_WRITE_OUTSIDE_SETTER is among them, with the events as evidence; after the fix, the code is gone from artifact.diagnostics.
Check for regressions in tests shows the loop and the Vitest matcher form.
Learn more
- Diagnostics: every code, with its kind, severity, and trigger.
- Debugging reactivity: how to read a report and what each group of codes points at.