# 🎉 Node-RED 4.1 Released

**URL:** <https://discourse.nodered.org/t/node-red-4-1-released/98364>\
**Category:** News\
**Created:** [29 July 2025 16:34 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364 "2025-07-29T16:34:56Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [29 July 2025 16:34 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/1 "2025-07-29T16:34:56Z")

</div>

Node-RED 4.1 have been published and is now generally available!

The release blog post is here: [Version 4.1 released : Node-RED](https://nodered.org/blog/2025/07/29/version-4-1-released)

Thank you to everyone who contributed to this release.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [29 July 2025 16:44 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/2 "2025-07-29T16:44:42Z")

</div>



---

<div class="post-metadata">

**Author:** ![hardillb](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/hardillb/32/12373_2.png) [@hardillb](https://discourse.nodered.org/u/hardillb)\
**Post date:** [29 July 2025 16:59 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/3 "2025-07-29T16:59:52Z")

</div>

Docker builds should be available both on Docker Hub and GitHub

---

<div class="post-metadata">

**Author:** ![AllanOricil](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/allanoricil/32/106911_2.png) [@AllanOricil](https://discourse.nodered.org/u/AllanOricil)\
**Post date:** [29 July 2025 19:42 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/4 "2025-07-29T19:42:49Z")

</div>

awesome change

 ![Screenshot_20250729-163423_Chrome](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/7/b760e52e998b36fafcff4a1cf47851f5a1303796.jpeg)

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [29 July 2025 21:34 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/5 "2025-07-29T21:34:51Z")

</div>

Tbh, it annoys me more than I thought it would 😂

> [@AllanOricil](#):
>
> ![Screenshot_20250729-163423_Chrome](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/7/b760e52e998b36fafcff4a1cf47851f5a1303796.jpeg)

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [29 July 2025 22:09 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/6 "2025-07-29T22:09:27Z")

</div>

> [@Steve-Mcl](#):
>
> Tbh, it annoys me more than I thought it would

All the more important to set up sensible keyboard shortcuts.

I have `Esc` set up to exit, ctrl-Enter is `Done`.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 July 2025 16:18 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/7 "2025-07-31T16:18:37Z")

</div>

4.1 release (like previous release) loads my flows by default with the deploy button enabled (dirty flows?).

Nothing weird to be seen in console.

```auto
[Log] [Wipr (Legacy) Extra 1.71] Not required on this domain (wipr-extra.js, line 2)
[Log] JQMIGRATE: Migrate is installed, version 3.5.2 (vendor.js, line 3)
[Error] Source Map loading errors (x4)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (jquery-steps.css.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (purify.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (FileSaver.min.js.map, line 0)
[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (jquery-steps.css.map, line 0)
[Log] Node-RED: 4.1.0 (red.min.js, line 16)
[Log] Versions (red.min.js, line 16)
[Log] jQuery – "3.7.1" (red.min.js, line 16)
[Log] jQuery UI – "1.14.1" (red.min.js, line 16)
[Log] ACE – "1.4.12" (red.min.js, line 16)
[Log] MONACO – "0.52.0" (red.min.js, line 16)
[Log] D3 – "3.0.3" (red.min.js, line 16)
[Log] Projects disabled (red.min.js, line 16)
[Log] registering netatmo get next events (10.0.0.170, line 2)
[Log] registering netatmo get camera picture (10.0.0.170, line 2)
[Log] registering netatmo get home data (10.0.0.170, line 2)
[Log] ui_worldmap: Node-RED-Dashboard not found. (10.0.0.170, line 268)
[Warning] registerType: e-mail mta: the property "users" is internal and cannot be used. (red.min.js, line 16)
[Log] =======================> HIER configNodes via eachConfig nodig (10.0.0.170, line 231)
[Error] TypeError: undefined is not an object (evaluating '(0,Z.fz)().navigator.clipboard.write')
	e (editor.js:2:4202081)

```

Navigating away also shows native browser message that there is unsaved data.

Safari 18.5 (20621.2.5.11.8)  
MacOS 15.5 (24F74)  
node -v && npm -v  
v20.19.2  
10.8.2

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [31 July 2025 16:21 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/8 "2025-07-31T16:21:09Z")

</div>

What module have you installed for the `e-mail mta` node that is logging a warning?

But also, if you say you were seeing this in previous releases as well, then this isn’t a 4.1 specific item, so may be worth splitting off to its own topic?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 July 2025 18:13 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/9 "2025-07-31T18:13:35Z")

</div>

> node-red-node-email

> But also, if you say you were seeing this in previous releases as well, then this isn’t a 4.1 specific item, so may be worth splitting off to its own topic?

True, i was 'hoping' this was solved as a side effect of other fixes.

---

<div class="post-metadata">

**Author:** ![Mecworks](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mecworks/32/101359_2.png) [@Mecworks](https://discourse.nodered.org/u/Mecworks)\
**Post date:** [31 July 2025 18:16 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/10 "2025-07-31T18:16:20Z")

</div>

When editing a subflow and clicking on the output of a node, dragging a line to an empty place on the canvas, a choice of nodes should appear. I only get an empty looking gray node with a dashed outline. I cannot make it go away unless I reload the entire page. I cannot select a node type as there are none displayed where there should be a dropdown. I’m running Node.js 22 on a raspberry pi and Node Red 4.1 upgraded from (I think) 4.0.9.

---

<div class="post-metadata">

**Author:** ![marcus-j-davies](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marcus-j-davies/32/103435_2.png) [@marcus-j-davies](https://discourse.nodered.org/u/marcus-j-davies)\
**Post date:** [31 July 2025 18:33 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/11 "2025-07-31T18:33:24Z")

</div>

I was never a fan of this change at all!  
Slows down the speed that I have learned to gain in the workspace, and now it just gets in the way 👎

I wish my suggestion of having it a config would have been implemented - but hey it's all good. (Really) 🤨

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [31 July 2025 18:36 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/12 "2025-07-31T18:36:01Z")

</div>

@Mecworks can you raise an issue on GitHub?

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [31 July 2025 18:39 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/13 "2025-07-31T18:39:03Z")

</div>

I'm highly tempted to put it behind a user option and defaulting to the original behaviour 😂

---

<div class="post-metadata">

**Author:** ![marcus-j-davies](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marcus-j-davies/32/103435_2.png) [@marcus-j-davies](https://discourse.nodered.org/u/marcus-j-davies)\
**Post date:** [31 July 2025 18:44 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/14 "2025-07-31T18:44:40Z")

</div>

Would be nice!

The default now, has changed the way I need to work, whilst a 🤏 - but still an interruption when working in the editor for long periods.

I'm all good with the changes of course 😘, but would be nice for some flexibility here, its little detail of course, but its magnified when muscle memory is a factor within the editor.

But dare I forget - thanks for the awesome work 🙏

---

<div class="post-metadata">

**Author:** ![AllanOricil](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/allanoricil/32/106911_2.png) [@AllanOricil](https://discourse.nodered.org/u/AllanOricil)\
**Post date:** [31 July 2025 23:54 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/15 "2025-07-31T23:54:19Z")

</div>

I was going to add the setting but I was not sure if I could.

---

<div class="post-metadata">

**Author:** ![AllanOricil](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/allanoricil/32/106911_2.png) [@AllanOricil](https://discourse.nodered.org/u/AllanOricil)\
**Post date:** [31 July 2025 23:57 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/16 "2025-07-31T23:57:28Z")

</div>

Once this new setting is added, we must track how many people enabled it and kept it for a while. FF could run these tests using new onboarded users who are not biased like you old folks (experienced users). @dimitrieh this could probably be one of your focuses.

---

<div class="post-metadata">

**Author:** ![AllanOricil](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/allanoricil/32/106911_2.png) [@AllanOricil](https://discourse.nodered.org/u/AllanOricil)\
**Post date:** [1 August 2025 00:00 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/17 "2025-08-01T00:00:51Z")

</div>

> [@Steve-Mcl](#):
>
> Tbh, it annoys me more than I thought it would 😂

You should share the pool link that was run with @dimitrieh

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [1 August 2025 00:16 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/18 "2025-08-01T00:16:13Z")

</div>

> [@AllanOricil](#):
>
> like you old folks

Hey less of the old, I think you mean seasoned 😀

---

<div class="post-metadata">

**Author:** ![AllanOricil](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/allanoricil/32/106911_2.png) [@AllanOricil](https://discourse.nodered.org/u/AllanOricil)\
**Post date:** [1 August 2025 13:46 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/19 "2025-08-01T13:46:42Z")

</div>

> [@Sean-McG](#):
>
> Hey less of the old, I think you mean seasoned 😀

I didnt mean to be mean. I wanted to say “experienced user”

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [1 August 2025 17:39 UTC](https://discourse.nodered.org/t/node-red-4-1-released/98364/20 "2025-08-01T17:39:02Z")

</div>

> [@Sean-McG](#):
>
> I think you mean seasoned 😀

I’ll take that with a pinch of salt..

[Next page](https://discourse.nodered.org/t/node-red-4-1-released/98364.md?page=2)
