# 🎉 Node-RED 4.0 released

**URL:** <https://discourse.nodered.org/t/node-red-4-0-released/88815>\
**Category:** News\
**Created:** [20 June 2024 13:53 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815 "2024-06-20T13:53:51Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [25 June 2024 21:12 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/62 "2024-06-25T21:12:19Z")

</div>

Noobs question: upgrading to 4.0 does affect existing config (palette, flows,...)?

---

<div class="post-metadata">

**Author:** ![Paul-Reed](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/paul-reed/32/66906_2.png) [@Paul-Reed](https://discourse.nodered.org/u/Paul-Reed)\
**Post date:** [25 June 2024 21:47 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/63 "2024-06-25T21:47:11Z")

</div>

> [@jundo](#):
>
> upgrading to 4.0 does affect existing config (palette, flows,...)?

If you check the posts above, others have reported isolated incidents with the 'split' node, otherwise it shouldn't.  
Your flows, configs, palette etc should transfer to v4 without problems, although it's always advisable to back-up your instance before upgrading (there's lots of posts in the forum about how to do this).

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 13:02 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/64 "2024-06-26T13:02:01Z")

</div>

I upgraded but unfortunately the new version does'nt see any of the previous flows, same for config nodes...  
Ony palettes seems to be preserved.  
I am in troubles...

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 June 2024 13:21 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/65 "2024-06-26T13:21:20Z")

</div>

What files do you have in your .node-red folder?

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 14:55 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/66 "2024-06-26T14:55:32Z")

</div>

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/9/f/9fe5f153b30a48d764969bbee4a14f6f98c426cc.png)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 15:03 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/67 "2024-06-26T15:03:54Z")

</div>

Start node-red in a command window and post the output here. It should start with welcome to node red. That will tell you which flows file it is trying to load.

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 15:06 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/68 "2024-06-26T15:06:39Z")

</div>

roberto@RCORE:~/.node-red $ node-red start  
26 Jun 17:05:55 - [info]

# Welcome to Node-RED

26 Jun 17:05:55 - [info] Node-RED version: v4.0.0  
26 Jun 17:05:55 - [info] Node.js version: v20.14.0  
26 Jun 17:05:55 - [info] Linux 6.6.31+rpt-rpi-2712 arm64 LE  
26 Jun 17:05:55 - [info] Loading palette nodes  
26 Jun 17:05:56 - [info] Settings file : /home/roberto/.node-red/settings.js  
26 Jun 17:05:56 - [info] Context store : 'default' [module=memory]  
26 Jun 17:05:56 - [info] User directory : /home/roberto/.node-red  
26 Jun 17:05:56 - [info] Projects directory: /home/roberto/.node-red/projects  
26 Jun 17:05:56 - [warn] No active project : using default flows file  
26 Jun 17:05:56 - [info] Flows file : /home/roberto/.node-red/start  
26 Jun 17:05:56 - [info] Creating new flow file  
26 Jun 17:05:56 - [warn] Encrypted credentials not found  
26 Jun 17:05:56 - [error] Unable to listen on [http://127.0.0.1:1880/](http://127.0.0.1:1880/)  
26 Jun 17:05:56 - [error] Error: port in use

Now I've got a credential error and nodered does'nt show any default flow.  
This happened after I tried to restore the credential in settings.js. Currently

```
 credentialSecret: "",

```

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/f/7f1735f3d32eb532ad15a0465d278175da52320d.png)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 15:11 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/69 "2024-06-26T15:11:57Z")

</div>

> [@jundo](#):
>
> node-red start

That tells it to run node red using a flows file called `start`, as you can see from the log.  
The command to use is `node-red-start`

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 15:14 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/70 "2024-06-26T15:14:14Z")

</div>

roberto@RCORE:~/.node-red $ node-red-start

Start Node-RED

Once Node-RED has started, point a browser at [http://192.168.1.37:1880](http://192.168.1.37:1880)  
On Pi Node-RED works better with the Firefox or Chrome browser

Use node-red-stop to stop Node-RED  
Use node-red-start to start Node-RED again  
Use node-red-log to view the recent log output  
Use sudo systemctl enable nodered.service to autostart Node-RED at every boot  
Use sudo systemctl disable nodered.service to disable autostart on boot

To find more nodes and example flows - go to [http://flows.nodered.org](http://flows.nodered.org)

Starting as a systemd service.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 15:17 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/71 "2024-06-26T15:17:17Z")

</div>

Is that all?

What did you previously use to run node-red?

Try `node-red-stop` then `node-red-start`. If still no joy try just `node-red`

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 15:21 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/72 "2024-06-26T15:21:20Z")

</div>

previously I used  
sudo systemctl enable nodered.service  
and  
sudo systemctl restart nodered.service

# Starting as a systemd service. 26 Jun 17:22:25 - [info] Welcome to Node-RED

26 Jun 17:22:25 - [info] Node-RED version: v4.0.0  
26 Jun 17:22:25 - [info] Node.js version: v20.14.0  
26 Jun 17:22:25 - [info] Linux 6.6.31+rpt-rpi-2712 arm64 LE  
26 Jun 17:22:25 - [info] Loading palette nodes  
26 Jun 17:22:26 - [info] Settings file : /home/roberto/.node-red/settings.js  
26 Jun 17:22:26 - [info] Context store : 'default' [module=memory]  
26 Jun 17:22:26 - [info] User directory : /home/roberto/.node-red  
26 Jun 17:22:26 - [info] Projects directory: /home/roberto/.node-red/projects  
26 Jun 17:22:26 - [warn] No active project : using default flows file  
26 Jun 17:22:26 - [info] Flows file : /home/roberto/.node-red/flows.json  
26 Jun 17:22:26 - [info] Server now running at [http://127.0.0.1:1880/](http://127.0.0.1:1880/)  
26 Jun 17:22:26 - [warn] Error loading credentials: SyntaxError: Unexpected token 'S', "S�P�)/��"... is not valid JSON  
26 Jun 17:22:26 - [warn] Error loading flows: Error: Failed to decrypt credentials  
^Croberto@RCORE:~/.node-red $

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 15:25 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/73 "2024-06-26T15:25:54Z")

</div>

no changes

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 15:55 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/74 "2024-06-26T15:55:00Z")

</div>

What do you mean 'no changes'?

Please answer all the questions and suggestions and describe what happens in each case.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 16:29 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/75 "2024-06-26T16:29:19Z")

</div>

> [@jundo](#):
>
> Error loading credentials: SyntaxError: Unexpected token 'S', "S�P�)/��"... is not valid JSON

Your credentials file is corrupt. Rename the file flows\_cred.json to something else and try again.

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 20:00 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/76 "2024-06-26T20:00:42Z")

</div>

I renamed flows\_cred.json and .flows\_cred.json.  
stopped nodered (node-red stop) and restarted (node-red restart).

```auto
roberto@RCORE:~/.node-red $ node-red stop
26 Jun 21:57:21 - [info]

Welcome to Node-RED
===================

26 Jun 21:57:21 - [info] Node-RED version: v4.0.0
26 Jun 21:57:21 - [info] Node.js version: v20.14.0
26 Jun 21:57:21 - [info] Linux 6.6.31+rpt-rpi-2712 arm64 LE
26 Jun 21:57:21 - [info] Loading palette nodes
26 Jun 21:57:22 - [info] Settings file : /home/roberto/.node-red/settings.js
26 Jun 21:57:22 - [info] Context store : 'default' [module=memory]
26 Jun 21:57:22 - [info] User directory : /home/roberto/.node-red
26 Jun 21:57:22 - [info] Projects directory: /home/roberto/.node-red/projects
26 Jun 21:57:22 - [warn] No active project : using default flows file
26 Jun 21:57:22 - [info] Flows file : /home/roberto/.node-red/stop
26 Jun 21:57:22 - [info] Creating new flow file
26 Jun 21:57:22 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

26 Jun 21:57:22 - [warn] Encrypted credentials not found
26 Jun 21:57:22 - [error] Unable to listen on http://127.0.0.1:1880/
26 Jun 21:57:22 - [error] Error: port in use
roberto@RCORE:~/.node-red $ node-red start
26 Jun 21:57:27 - [info]

Welcome to Node-RED
===================

26 Jun 21:57:27 - [info] Node-RED version: v4.0.0
26 Jun 21:57:27 - [info] Node.js version: v20.14.0
26 Jun 21:57:27 - [info] Linux 6.6.31+rpt-rpi-2712 arm64 LE
26 Jun 21:57:27 - [info] Loading palette nodes
26 Jun 21:57:28 - [info] Settings file : /home/roberto/.node-red/settings.js
26 Jun 21:57:28 - [info] Context store : 'default' [module=memory]
26 Jun 21:57:28 - [info] User directory : /home/roberto/.node-red
26 Jun 21:57:28 - [info] Projects directory: /home/roberto/.node-red/projects
26 Jun 21:57:28 - [warn] No active project : using default flows file
26 Jun 21:57:28 - [info] Flows file : /home/roberto/.node-red/start
26 Jun 21:57:28 - [info] Creating new flow file
26 Jun 21:57:28 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

26 Jun 21:57:28 - [warn] Encrypted credentials not found
26 Jun 21:57:28 - [error] Unable to listen on http://127.0.0.1:1880/
26 Jun 21:57:28 - [error] Error: port in use
roberto@RCORE:~/.node-red $

```

in the settings.js I commented the credenzialSecret setting

I get the following at start time:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/f/7f1735f3d32eb532ad15a0465d278175da52320d.png)

no flows detected in the nodered folder

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [26 June 2024 20:02 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/77 "2024-06-26T20:02:40Z")

</div>

```auto
[error] Error: port in use

```

Start by stopping this instance and then try again

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 June 2024 20:26 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/78 "2024-06-26T20:26:44Z")

</div>

> [@jundo](#):
>
> `node-red stop`

This command does not tell Node-red to shutdown. In fact it tells Node-red to start up using a flows file called "stop"

The names for various Node-red scripts node-red-stop, node-red-start, node-red, node-red-pi (and possibly others) inevitably lead to confusion and mistakes.

The assumption that any parameter not otherwise understood is name of the flows file to use is a disastrous choice. IMHO.

Therefore I recommend you always use `sudo systemctl stop nodered` and `sudo systemctl restart nodered` (note no hyphen in the systemd service name)

---

<div class="post-metadata">

**Author:** ![jundo](https://avatars.discourse-cdn.com/v4/letter/j/3da27b/32.png) [@jundo](https://discourse.nodered.org/u/jundo)\
**Post date:** [26 June 2024 20:39 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/79 "2024-06-26T20:39:13Z")

</div>

```auto
roberto@RCORE:~ $ sudo lsof -i :1880
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node-red 2681 roberto 19u IPv4 14295 0t0 TCP *:1880 (LISTEN)
node-red 2681 roberto 25u IPv4 22001 0t0 TCP 192.168.1.37:1880->192.168.1.157:39481 (ESTABLISHED)

```

it is nodered itself to use this port.  
Killed the process  
restarted (node-red start).

Now I get the default flows1  
I have to inport and (unfortunately) old backup

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [26 June 2024 20:41 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/80 "2024-06-26T20:41:47Z")

</div>

> [@jundo](#):
>
> node-red start

What flow file do you expect the command` node-red start` to use?  
A clue: it's not `flows.json`.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [26 June 2024 20:48 UTC](https://discourse.nodered.org/t/node-red-4-0-released/88815/81 "2024-06-26T20:48:48Z")

</div>

> [@jundo](#):
>
> restarted (node-red start).

It has been stated multiple times that the commands are  
`node-red-start` to start node red, not `node-red start`  
and  
`node-red-stop` to stop it.  
Computers do what you tell them to do, not what you meant them to do. It is necessary to use the correct commands.

`node-red-reload` will stop and restart it.

[Previous page](https://discourse.nodered.org/t/node-red-4-0-released/88815.md?page=3)

[Next page](https://discourse.nodered.org/t/node-red-4-0-released/88815.md?page=5)
