Recurring "The flows on the server have been updated" message

Hi

For some reason every time I do a browser refresh, I receive the following prompt ?

When I choose “Review change" it says there are no conflicts?

Any ideas what could be causing this with the refresh, as no changes are being made - even if I do make an update the deployment is successful, but then any subsequent browser refreshes will provide the same ‘The flows on the server’ message ?

I’d guess you have Node-RED open in another browser window.

Hummm, interesting thought, as I had been working from a PC earlier (via Chrome), but that PC had been a sleep for a while - before I picked it up again from my iPad ?

Opening my PC up and accessing NR today, I now get the same messages via Chrome with every browser refresh I do. It is also the first message that comes up when I load NR now ?

Does anyone know what exactly is being checked ?

I can only guess it’s a time related issue, some sort of conflict between my local browser clock/time-zone and the server i’m running NR on?

Reloading the editor ought to clear the message.. it is odd that it doesn't.

There may be some stale state in the runtime - restart Node-RED and see if it continues.

Using the Simpletime node, I can see a difference, the timestamp payload looks to be 1 hour different to the coverted time ?

image

Running two simple flows, one a timestamp via simpletime and the other by sending the "date" command via an exec node..

[{"id":"9cafb30d.76979","type":"inject","z":"1e32dbd2.3d49e4","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":300,"y":80,"wires":[["3fd1963d.901baa","a8200c05.146a9"]]},{"id":"a8200c05.146a9","type":"exec","z":"1e32dbd2.3d49e4","command":"date","addpay":false,"append":"","useSpawn":"false","timer":"","oldrc":false,"name":"","x":510,"y":160,"wires":[["76371231.8b83dc"],[],[]]},{"id":"3fd1963d.901baa","type":"simpletime","z":"1e32dbd2.3d49e4","name":"","x":530,"y":80,"wires":[["69b33a4c.77a7a4"]]},{"id":"288dbe45.96ab92","type":"debug","z":"1e32dbd2.3d49e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":890,"y":80,"wires":[]},{"id":"69b33a4c.77a7a4","type":"change","z":"1e32dbd2.3d49e4","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"myrawdate","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":740,"y":80,"wires":[["288dbe45.96ab92"]]},{"id":"76371231.8b83dc","type":"debug","z":"1e32dbd2.3d49e4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":750,"y":140,"wires":[]}]

... Gives me this.

This has absolutely nothing to do with times.

The runtime calculates a hash of the flow configuration. When the editor's websocket connection connects to the runtime, the runtime sends the editor the hash of the flows it is currently running. The editor compares that hash with the hash it got when it originally loaded the flows. If they are different, it displays this warning message.

The reason I say it is odd to get the warning message when you reload the editor is because the editor will have just loaded the latest flows from the runtime - so the hashes should be the same.

Please raise an issue so we take a proper look at this scenario.

Thanks @knolleary

Sure, where do I need to go to raise the issue ?

I'll also try and node-red-stop and start to see if that helps.

Yes, the converted time is 1 hour different because of daylight saving (BST if in uk). The timestamp is an epoch so never changes for DST, as it's the number of seconds since a fixed point in time.

Yes, I did suggest you restart Node-RED.

Please raise an issue here

Thanks for the clarification @Paul-Reed

@knolleary - I tired the stop/start and that worked initially, but after just repositioning a node it's come back when I went to do the deploy, and it's now back again with every browser refresh.

Thankfully it's not reporting any conflicts, but this recurring prompt is a little annoying :frowning:

I'll log it

Done - https://github.com/node-red/node-red/issues/2249

Have you got anything clever in your flow that does something when a browser refreshes it's view (using ui_control node for example)?

Now that’s a phrase I don’t often hear directed at me :crazy_face::rofl::joy:

But in all seriousness , no. It’s a reasonably straight forward flow - one that I had moved (copy and pasting) from on old instance to my new VM one.

The constant prompting is painful.

@knolleary if you need any logs or anything let me know, otherwise i’m going to have to attempt an uninstall-reinstall or something to make it go away.. :frowning:

I honestly have no idea how you can be hitting this.

Can you try the follow:

  1. edit your settings file and set the logging level to debug.
  2. restart Node-RED
  3. In the log, you should have a line that says something like:
    6 Aug 09:53:27 - [debug] loaded flow revision: 2f1f470b70250648fd589a2794afc0f0
  1. Reload the editor
  2. Open the JavaScript console in your browser and run RED.nodes.version() - this will report what revision of the flows the editor thinks it has.

Compare the revision reported in step 3 and step 5. Are they the same or not?

Is someone else on your network and your node-red?

Nope (not that I'm aware of :smile:) - plus I have a few instance of NR running, and this is the only one that does it, this was built from scratch (Debian VM)

I've not done that before, can you advise ?
I'm using Chrome, what should I do/where should I go ?

In Chrome, select View->Developer->JavaScript Console

This will open the javascript console window. In that you can type in the RED.nodes.version() command and hit enter to run it.