Home Assistant 2024.1 upgrade results in Node Red unable to deploy
Describe the bug
After Home Assistant upgrade from 2023.12.4 to 2024.1.2, attempts to deploy in NodeRed fail with “No server response”. Then I get ensuing prompts about server flows having changed and merging, etc. and then into an infinite loop of attempting to deploy those changes, getting the error, and so on.
Revertying Home Assistant back to 2023.12.4 using a Proxmox backup restores the ability to deploy.
NodeRED log when deploy is attempted is
Jan 7 20:22:16 nodered node-red[3096]: Welcome to Node-RED
Jan 7 20:22:16 nodered node-red[3096]: ===================
Jan 7 20:22:16 nodered node-red[3096]: 7 Jan 20:22:16 - [info] Node-RED version: v3.1.3
Jan 7 20:22:16 nodered node-red[3096]: 7 Jan 20:22:16 - [info] Node.js version: v18.17.1
Jan 7 20:22:16 nodered node-red[3096]: 7 Jan 20:22:16 - [info] Linux 6.5.11-7-pve x64 LE
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] Loading palette nodes
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] Settings file : /root/.node-red/settings.js
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] Context store : 'default' [module=memory]
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] User directory : /root/.node-red
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [warn] Projects disabled : editorTheme.projects.enabled=false
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] Flows file : /root/.node-red/flows.json
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [info] Server now running at http://127.0.0.1:1880/
Jan 7 20:22:17 nodered node-red[3096]: 7 Jan 20:22:17 - [warn]
Jan 7 20:22:17 nodered node-red[3096]: ---------------------------------------------------------------------
Jan 7 20:22:17 nodered node-red[3096]: Your flow credentials file is encrypted using a system-generated key.
Jan 7 20:22:17 nodered node-red[3096]: If the system-generated key is lost for any reason, your credentials
Jan 7 20:22:17 nodered node-red[3096]: file will not be recoverable, you will have to delete it and re-enter
Jan 7 20:22:17 nodered node-red[3096]: your credentials.
Jan 7 20:22:17 nodered node-red[3096]: You should set your own key using the 'credentialSecret' option in
Jan 7 20:22:17 nodered node-red[3096]: your settings file. Node-RED will then re-encrypt your credentials
Jan 7 20:22:17 nodered node-red[3096]: file using your chosen key the next time you deploy a change.
Jan 7 20:22:17 nodered node-red[3096]: ---------------------------------------------------------------------
Jan 7 20:22:18 nodered node-red[3096]: 7 Jan 20:22:18 - [info] Starting flows
Jan 7 20:22:18 nodered node-red[3096]: 7 Jan 20:22:18 - [info] Started flows
Jan 7 20:22:18 nodered node-red[3096]: 7 Jan 20:22:18 - [info] [server:Home Assistant] Connecting to http://homeassistant.local:8123
Jan 7 20:22:18 nodered node-red[3096]: 7 Jan 20:22:18 - [info] [mqtt-broker:MQTT] Connected to broker: node-red.local@mqtt://mqtt.lan:1883
Jan 7 20:22:18 nodered node-red[3096]: 7 Jan 20:22:18 - [info] [server:Home Assistant] Connected to http://homeassistant.local:8123
Jan 7 20:27:48 nodered node-red[3096]: 7 Jan 20:27:48 - [info] Stopping flows
Jan 7 20:27:48 nodered node-red[3096]: 7 Jan 20:27:48 - [info] [server:Home Assistant] Closing connection to http://homeassistant.local:8123
Jan 7 20:27:48 nodered node-red[3096]: 7 Jan 20:27:48 - [red] Uncaught Exception:
Jan 7 20:27:48 nodered node-red[3096]: 7 Jan 20:27:48 - [error] UnhandledPromiseRejection: 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(). The promise rejected with the reason "3".
Jan 7 20:27:48 nodered systemd[1]: nodered.service: Main process exited, code=exited, status=1/FAILURE
Jan 7 20:27:48 nodered systemd[1]: nodered.service: Failed with result 'exit-code'.
Jan 7 20:27:48 nodered systemd[1]: nodered.service: Consumed 9.325s CPU time.
Jan 7 20:27:48 nodered systemd[1]: nodered.service: Scheduled restart job, restart counter is at 3.
Jan 7 20:27:48 nodered systemd[1]: Stopped Node-RED.
Jan 7 20:27:48 nodered systemd[1]: nodered.service: Consumed 9.325s CPU time.
This is a re-post of a topic I created at https://community.home-assistant.io/t/2024-1-upgrade-resulted-in-node-red-unable-to-deploy/668291 to which there have been no responses as yet.
To Reproduce
- Upgrade HA version to 2024.1.2
- Attempt to deploy in NodeRED results in "No server response"
- NodeRED log file shows abovementioned error message
- Revert Home Assistant back to 2023.12.4 and ability to deploy in NodeRED is restored
Expected behavior
Able to deploy in NodeRED whilst running HA 2024.1.2
Screenshots
No response
Example Flow
Not relevant
Environment Information
Version: 0.62.2
Home Assistant version: 2024.1.2 Companion version: v3.1.2
Node-RED version: v3.1.3 Docker: no Add-on: no
Node.js version: v18.17.1 OS: Ubuntu 22.04.3 LTS
Additional context
No response
What I am guessing is happening here is NR is disconnecting from HA then something is attempting to be sent to HA while in a disconnected state and the send fails.
What is your deploy method set to (e.g. Full, Modified Flows, Modified Nodes)?
Can you add the code snip to the top of your NR settings.js file? So I can better understand exactly where this error is being thrown from?
process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection: ', p, 'reason:', reason);
});
Done.
Log below. Note that the error no longer occurs and I can deploy successfully. I pulled the code back out again, restarted NodeRED and got the error again.
Jan 9 21:48:51 nodered node-red[32232]: 9 Jan 21:48:51 - [info]
Jan 9 21:48:51 nodered node-red[32232]: Welcome to Node-RED
Jan 9 21:48:51 nodered node-red[32232]: ===================
Jan 9 21:48:51 nodered node-red[32232]: 9 Jan 21:48:51 - [info] Node-RED version: v3.1.3
Jan 9 21:48:51 nodered node-red[32232]: 9 Jan 21:48:51 - [info] Node.js version: v18.17.1
Jan 9 21:48:51 nodered node-red[32232]: 9 Jan 21:48:51 - [info] Linux 6.5.11-7-pve x64 LE
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [info] Loading palette nodes
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [info] Settings file : /root/.node-red/settings.js
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [info] Context store : 'default' [module=memory]
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [info] User directory : /root/.node-red
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [warn] Projects disabled : editorTheme.projects.enabled=false
Jan 9 21:48:52 nodered node-red[32232]: 9 Jan 21:48:52 - [info] Flows file : /root/.node-red/flows.json
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] Server now running at http://127.0.0.1:1880/
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [warn]
Jan 9 21:48:53 nodered node-red[32232]: ---------------------------------------------------------------------
Jan 9 21:48:53 nodered node-red[32232]: Your flow credentials file is encrypted using a system-generated key.
Jan 9 21:48:53 nodered node-red[32232]: If the system-generated key is lost for any reason, your credentials
Jan 9 21:48:53 nodered node-red[32232]: file will not be recoverable, you will have to delete it and re-enter
Jan 9 21:48:53 nodered node-red[32232]: your credentials.
Jan 9 21:48:53 nodered node-red[32232]: You should set your own key using the 'credentialSecret' option in
Jan 9 21:48:53 nodered node-red[32232]: your settings file. Node-RED will then re-encrypt your credentials
Jan 9 21:48:53 nodered node-red[32232]: file using your chosen key the next time you deploy a change.
Jan 9 21:48:53 nodered node-red[32232]: ---------------------------------------------------------------------
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] Starting flows
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] Started flows
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] [server:Home Assistant] Connecting to http://192.168.0.40:8123
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] [mqtt-broker:MQTT] Connected to broker: node-red.local@mqtt://mqtt.lan:1883
Jan 9 21:48:53 nodered node-red[32232]: 9 Jan 21:48:53 - [info] [server:Home Assistant] Connected to http://192.168.0.40:8123
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] Stopping flows
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] [server:Home Assistant] Closing connection to http://192.168.0.40:8123
Jan 9 21:49:29 nodered node-red[32232]: Unhandled Rejection: Promise { <rejected> 3 } reason: 3
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] [mqtt-broker:MQTT] Disconnected from broker: node-red.local@mqtt://mqtt.lan:1883
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] Stopped flows
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] Updated flows
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] Starting flows
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] Started flows
Jan 9 21:49:29 nodered node-red[32232]: 9 Jan 21:49:29 - [info] [server:Home Assistant] Connecting to http://192.168.0.40:8123
Jan 9 21:49:30 nodered node-red[32232]: 9 Jan 21:49:30 - [info] [mqtt-broker:MQTT] Connected to broker: node-red.local@mqtt://mqtt.lan:1883
Jan 9 21:49:30 nodered node-red[32232]: 9 Jan 21:49:30 - [info] [server:Home Assistant] Connected to http://192.168.0.40:8123
Jan 9 21:49:30 nodered node-red[32232]: Unhandled Rejection: Promise { <rejected> 3 } reason: 3
Are there any corresponding error messages in the Home Assistant logs?
HA logs are showing nothing at the time of deployment. Checked with both that code snippet in there and not - either way, nothing in the HA log file.
This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.