amark/gun · error · Error
Illegal reactive (${prop}: ${value})
Error message
Illegal reactive (${prop}: ${value}) What it means
This is the EDIDE showError helper: a generic wrapper, not a specific fault. The '${err}' is a template of the caller-supplied value. When an object without a .stack is passed, it throws Error(err) solely to synthesize a stack trace, then routes the error to the editor error panel, the production error printer, or console.error depending on environment.
Source
Thrown at lib/wave.js:436
}).call(MODSELF={}, edide, MODSELF);
edide.reactiveWithFilters = (function (edide, reactiveWithFilters) {
return (initialVars = {}, filters = {}) => {
var handler, id, key, react, revar, todoMap, unvar, val;
id = edide.strRandom();
handler = {
get: (map, prop) => {
var ref;
if ((ref = edide.editorModule) != null ? ref.editor_inspector.inspectingNow : void 0) {
console.log('IN inspector? Find out is it possible to end up here form inside setter');
return edide.var.values.get(`${id}.${prop}`);
}
return edide.var(`${id}.${prop}`);
},
set: (map, prop, value) => {
if ((filters[prop] != null) && !filters[prop](value)) {
throw Error(`Illegal reactive (${prop}: ${value})`);
}
edide.var(`${id}.${prop}`, value);
return true; // Proxy set must return true if set is successful; In the future use Reflect.set, which returns true automatically?
}
};
revar = new Proxy((todoMap = new Map), handler); // NOTE: map is not used yet
unvar = new Proxy(todoMap, {
get: (map, prop) => {
return edide.var.values.get(`${id}.${prop}`);
},
set: (map, prop, value) => {
return edide.var.values.set(`${id}.${prop}`, value);
}
});
for (key in initialVars) {
val = initialVars[key];
revar[key] = val;
}View on GitHub (pinned to 552227599d)
Solutions
- Inspect the underlying err value shown in the message — the real cause is in the caller that invoked showError
- Pass real Error objects (with .stack) to showError to skip the synthetic Error creation
- Check the editor error panel or prodErrorPrinter output where this wrapper forwards the error
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at lib/wave.js:436 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of amark/gun@552227599d (2026-09-02).
Data as JSON: /api/errors/717c75b949c94430.
Report an issue: GitHub.