node-red-dashboard
node-red-dashboard copied to clipboard
RangeError: Maximum call stack size exceeded
What are the steps to reproduce?
I have a very simple dashboard with
- 2 LineChart Nodes : Trigger > REST Call > JS > LineChart Update (I did the trick to delete the msg.req)
- 5 Custom Node : Trigger > Template HTML > Node Call
- 1 CSS Header Node
The template look like that :
{{#room.blink}}<img class="room-blink" src="../blink/th_{{room.blink}}.jpg" />>{{/room.blink}}
<div class="room-panel room-awake-{{room.awake}}">
<div class="room-label">{{room.label}}</div>
{{#room.dim}}<div class="room-dim">💡️{{.}}</div>{{/room.dim}}
{{#room.lux}}<div class="room-lux">☀️{{.}}</div>{{/room.lux}}
{{#room.audio}}<div class="room-audio">🔊{{.}}</div>{{/room.audio}}
</div>
What happens?
I have the following error :
RangeError: Maximum call stack size exceeded
at hasBinary (/node_modules/node-red-dashboard/node_modules/socket.io-parser/dist/is-binary.js:28:19)
The Node-RED crash and restart
What do you expect to happen?
I don't understand what is happening, I assume the browser refresh a websocket connection with Node-RED And then trigger the error then crash Node-RED
Please tell us about your environment:
- [ ] Node-RED-Dashboard version: 3.1.7
- [ ] Node-RED version: 2.2.2
- [ ] node.js version: 16.15.0
- [ ] npm version: 3.1.7
- [ ] Platform/OS: Ubuntu 18 on Azure
- [ ] Browser: Chrome
It seems I find a workaround,
- I remove all Emoji but it's not the issue
- I remove all object attach to
msg.that could create cycle it seems to work.
The weird thing is that payload is only a String and I assume the dashboard node do not sent the full msg. So it try to encode something that is not relevant. I continue the test.