🎉 Node-RED 4.1.0-beta.2 now available

:tada: The second, and final, beta release of Node-RED 4.1 is now available!

Node-RED 4.x requires at least Node 18.x. We recommend using Node 20 at least

If you missed the beta-1 release post, you can read the details here - then come back and find out what else we've added since then.

This isn't a large release, mostly some tidy up on items reported against the previous beta, plus a few items that didn't make that first release.

The Change Log has the full list of changes.

Note: if any issues are reported against the beta, we'll update this post to list them here. If you hit a problem, please do check back here before adding a comment.

Known Issues

  • None yet!

Better handling of loooooong topics in Debug sidebar

The Debug sidebar will now truncate long topics rather than fill the screen. Hovering over the topic will show a tooltip with the full content:

Event log widget

When installing a node from the palette manager, it can sometimes take a while depending on where Node-RED is running and the size of the module being installed. If you close the palette manager, you then lose any feedback of the install still running.

We've had the Event Log view since the early days of Node-RED (menu -> view -> Event log) but I bet its something most users are unaware of.

With this release, if there is an install running in the background, a progress widget is shown in the editor footer. Clicking on it will open up the event log. Once the install completes, the widget will hide itself.

Accessing the raw body of an HTTP request

A feature that has been requested a few times is to be able to access the raw, unparsed body of an incoming HTTP Request. This is now finally possible with a new option on the HTTP In node to not parse the request body. When selected, msg.payload will be a Buffer object. This is useful, for example, when dealing with APIs that generate checksums of the payload - something that couldn't be verified if the payload had been parsed to another format.

API updates

There have been a few updates to APIs - less interesting to end users, but in preparation of unlocking some more stuff in the future. Check the changelog for details, or come check in https://nodered.org/slack if you're interested in finding out more.


Installing the beta

If you want to try out the beta, you will need specify node-red@next when you use npm to update. Without the @next you'll still get 4.0.x

So on a Pi you'd do:

sudo npm install -g --unsafe-perm node-red@next

Docker images

The beta images are building as I write this (at least, they will be once I politely ask Ben to kick them off), but will soon be available under nodered/node-red-dev:v4.1.0-beta.2 - with the default image being based on node 20.

Reporting problems

If you hit any problems, please report them either as a reply on this topic, or in the #core-dev slack channel. Please do not post new topics to the forum regarding the beta as that could confuse users who are not using the beta.

Outstanding work

Aside from any minor bug fixes that come up, this is pretty much it for 4.1 beta releases. The goal is to get the final release published next week - not long to go!

10 Likes

Docker builds are done (but I will respin to fix the leading v on the tags to match release tags)

They can be found at

https://hub.docker.com/r/nodered/node-red-dev/tags

e.g.

nodered/node-red-dev:v4.1.0-beta.2
nodered/node-red-dev:v4.1.0-beta.2-debian

or

https://github.com/node-red/node-red-docker/pkgs/container/node-red-dev

e.g.

ghcr.io/node-red/node-red-dev:v4.1.0-beta.2
ghcr.io/node-red/node-red-dev:v4.1.0-beta.2-debian

1 Like

Should be available tagged both with and without the leading v now

Oh, that's a bit confusing - I just searched for v4 but found nothing over there until I realised that I was searching in nodered/node-red.

I then went over to nodered/node-red-dev and found v4.1.x and 4.1.x ...

I never knew that there was a second docker repository ...

I am testing 4.1.0 in a Docker container I have built.

I seem to be getting these errors in relation to the telemetry:

Sending telemetry
2025-07-09 09:38 +01:00: 9 Jul 09:38:00 - [debug] Failed to send telemetry: RequestError: unable to get local issuer certificate
2025-07-09 09:38 +01:00: 9 Jul 09:38:00 - [debug] Telemetry response: undefined

How did you build the container? what base did you use? Does it contain the public CA certs?

(I ask because your other post about removing required pre-reqs for NodeJS e.g. build tools)

And have you tested with the containers the project supplies?

When I tried this beta, I found that file upload using the http-in node fails. In v4.0.9, it works.

File upload command

curl -X POST http://localhost:1880/upload -F "file=@node-red-icon.png"

Node-RED flow

[{"id":"b4acce50cd831767","type":"http in","z":"cda04605a4c46de8","name":"","url":"/upload","method":"post","upload":true,"swaggerDoc":"","x":130,"y":80,"wires":[["2c244bcab8038c09"]]},{"id":"cc26d7e4122552f5","type":"http response","z":"cda04605a4c46de8","name":"","statusCode":"","headers":{},"x":490,"y":80,"wires":[]},{"id":"2c244bcab8038c09","type":"image","z":"cda04605a4c46de8","name":"","width":160,"data":"req.files[0].buffer","dataType":"msg","thumbnail":false,"active":true,"pass":true,"outputs":1,"x":320,"y":80,"wires":[["cc26d7e4122552f5"]]},{"id":"7206c40ade6541a2","type":"global-config","env":[],"modules":{"node-red-contrib-image-output":"0.6.4"}}]

@kazuhitoyokoi I see you are using Node24

I am not certain Node24 was addressed before beta.2 Node 24 support was only added a few days ago: Updates for Node 24 by knolleary · Pull Request #5207 · node-red/node-red · GitHub (and the test matrix has been updated too)

If you are in a position to pull the dev branch and run that, I am hopeful you will succeed?

Please let me know.

1 Like

Yes, I'm using Node.js v24.4.1 on macOS. Using the latest dev branch, the situation is the same as the 4.1.0-beta.2.
I also tried Node.js v22.17.1 for dev branch and 4.1.0-beta.2 but all my tests failed.

Just pulled dev branch, ran npm install, imported your flow...

image

1 Like

Before executing curl command, you need to download the png file in advance. In v4.0.9, curl command returns {}. In 4.1.0-beta.2, curl command returns Internal Server Error.

Ah, yes, I should have supplied an actual image (i assumed it would make no difference :man_facepalming:) but alas, yes, I see the same issue now:

Can you please raise an issue?

1 Like

Thank you for reproducing the error. I submitted the GitHub Issue.

2 Likes