🎉 Node-RED 0.19.1 released

#1

Node-RED 0.19.1 is now available - https://github.com/node-red/node-red/releases/tag/0.19.1

This addresses some edge cases that were hit with the File-based context store. It also fixes a regression in Template nodes that access context.

We've added an example contextStorage config block to the default settings file to help you get started.

Finally it pulls in the newly-published v1.1.0 version of the Twitter node - something you'll need when Twitter turn off a bunch of their APIs tomorrow!

4 Likes
Updating existing nodes
Context storage - Unhandled promise rejection
#2

Under investigation, my system no works without reboots but still see the error on debug I'm suspecting is related to ... once clear I will post, making tests right now.

Regards

#3

Now way........ I'm not able to find it after many test,,, there is any way to get more info with the error message I have on the debug window?

"Context 9d3475c3.201fe8:a3dd094e.f966a8 contains a circular reference that cannot be persisted"

#4

If you search for "9d3475c3.201fe8" in the Node-RED admin ui's search box, you will at least find the node that is causing the issue if you don't already know it.

#5

Starting 0.19.0 "change node" behavior was changed.
I'm using empty change node for transmitting unchanged messages, starting 0.19.0 I've got the error:
TypeError: Cannot read property 't' of undefined
Empty change node is useful for "skelet" creation, after you can add some processing

#6

@mikeS7 thanks for reporting - have reproduced and pushed a fix to git. The workaround until we 0.19.2 is to ensure the node has at least one rule.

#7

Hi,
I've got an error using the new contextStorage:

settings.js:

    contextStorage: {
        default: {
            module:"localfilesystem"
        },
    },

log:

Welcome to Node-RED
===================
16 Aug 13:09:07 - [info] Node-RED version: v0.19.1
16 Aug 13:09:07 - [info] Node.js  version: v8.11.3
16 Aug 13:09:07 - [info] Linux 4.14.52-v7+ arm LE
16 Aug 13:09:10 - [info] Loading palette nodes
16 Aug 13:09:25 - [info] Dashboard version 2.9.6 started at /ui
16 Aug 13:09:26 - [info] Settings file  : /home/pi/.node-red/settings.js
16 Aug 13:09:26 - [info] Context store  : 'default' [module=localfilesystem]
16 Aug 13:09:26 - [info] Server now running at http://127.0.0.1:1880/
(node:1920) UnhandledPromiseRejectionWarning: Error: EISDIR: illegal operation on a directory, read
(node:1920) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1920) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:1920) UnhandledPromiseRejectionWarning: #<Promise>
(node:1920) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)

Flow (function from the doc):

// initialise the counter to 0 if it doesn't exist already
var count = context.get('count')||0;
count += 1;
// store the value back
context.set('count',count);
// make it part of the outgoing msg object
msg.count = count;
return msg;
#8

@cflurin Can you send me a direct message (click on my user icon and click 'message') with the output of:

find /home/pi/.node-red/context

#9

Problem definitely solved.... the issue was 2 flows that take the value from an MQTT message to writte a global variable, originally with a"debounce node" in between to avoid false triggers.

Don't ask me why but just removing the debounce the issue is gone.

I think there was nothing directly wrong on my flows and seems more related to thenode-red-contrib-debounce node with the V0.19.

As I wrote on the other post and just as information, previously I was injecting some 0/1 after 3 seconds start/deploy on outputs for an arduino board connected via ÜSB with standard firmdata using node-red-node-arduino.

Now this was not working anymore, in my case I had to postpone the timing and inject the values after 10/12 seconds.

Seems that start of communication with the board now is taking longer for some reason.

For me is not a problem but just point it in case someone else experience some issue to have a clue in advance.

Thanks a lot for your support guys

#10

As mentioned having the debounce node in between the MQTT and a switch that filters 0/1 in order to writte a gobal variable gives me the error on debug as gollows:

20/8/2018 21:18:47
msg : string[94]
"Context 3d99836b.18317c:a3dd094e.f966a8 contains a circular reference that cannot be persisted"

However at least my system is not crashing with this release 0.19.1 as happened with the 0.19.

From other side now I have some other issue and need to have this node or make something functional on the same way to filter and don't pull the message unless remains unchanged for a specific time (now using 2 seconds).

There is any chance somehow to make it work without the error?

Thanks in advance

#11

This would have been better posted in it's own thread, as we are moving O/T from the original post.

Not sure why you are needing a debounce node when your flow is processing a MQTT message? I would have thought that any debounce filter should be applied earlier - before sending the MQTT message.
If however you think it necessary, perhaps you could use a 'delay' core node to achieve a similar result?

rate

As for the circular reference, could it be that your switch node criteria is not robust enough, and is passing the message to both change nodes at the same time - so both of them are trying to write the context at the same time...