node-red-contrib-home-assistant-websocket icon indicating copy to clipboard operation
node-red-contrib-home-assistant-websocket copied to clipboard

Home Assistant 2024.1 upgrade results in Node Red unable to deploy

Open aheath70 opened this issue 1 year ago • 4 comments

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

  1. Upgrade HA version to 2024.1.2
  2. Attempt to deploy in NodeRED results in "No server response"
  3. NodeRED log file shows abovementioned error message
  4. 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

aheath70 avatar Jan 07 '24 10:01 aheath70

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);
});

zachowj avatar Jan 09 '24 02:01 zachowj

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

aheath70 avatar Jan 10 '24 04:01 aheath70

Are there any corresponding error messages in the Home Assistant logs?

zachowj avatar Jan 10 '24 05:01 zachowj

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.

aheath70 avatar Jan 10 '24 05:01 aheath70

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.

github-actions[bot] avatar Mar 10 '24 06:03 github-actions[bot]