Deploy failing. No response from server

Hi,
This was all working fine until about an hour ago. All of a sudden I'm getting "Deploy failed. No response from server" every time I try to deploy changes. Even a change as small as physically moving a node on the page won't deploy. I haven't made any significant changes to the server today.

The server seems to start up fine and refreshing the browser, restarting Node Red and even rebooting the server have not made any difference. The only hint I have is that the following error is posted to the Node Red log every time I try to deploy.

BadRequestError: request aborted
at IncomingMessage.onAborted (/usr/lib/node_modules/node-red/node_modules/raw-body/index.js:231:10)
at IncomingMessage.emit (events.js:198:13)
at abortIncoming (_http_server.js:448:9)
at socketOnClose (_http_server.js:441:3)
at Socket.emit (events.js:203:15)
at TCP._handle.close (net.js:606:12)

That's the only error in the very short log and it just keeps repeating every time I try to deploy. There's nothing in the log about certs (another cause I've seen). I'm accessing it over straight HTTP, no SSL or TLS. The page reloads just fine and Node Red is otherwise working properly including the dashboard. I just can't deploy any changes.

Any ideas?
Terri

Hi Terri, can you explain where your Node-RED server is located? Is it on the same computer the web browser you use is running it, or perhaps a raspberry pi in your same network? Perhaps a cloud solution, like AWS or IBM Cloud? Maybe inside a docker container? :slight_smile:

On top of that, can you please post your Node-RED version and NodeJS version? In fact, it would be nice if you can restart the process and post the first part of the log Node-RED shows including those two version numbers.
Meanwhile I'm going to see if I can find what part of the code gives this error.

Thanks afelix. The Node Red instance is running on a Raspberry Pi zero W. I'm accessing it from a browser on a separate PC in the same network. I altered the email address with ***** for security. It doesn't seem to show the versions unless I'm looking in the wrong place. This is the output from node-red-log.

Here's the output from a restart:
30 Aug 11:37:04 - [info] Stopping flows
30 Aug 11:37:04 - [info] [mqtt-broker:Hallownet] Disconnected from broker: mqtt://192.168.4.1:1883
30 Aug 11:37:04 - [info] Stopped flows
30 Aug 11:37:04 - [info] Starting flows
30 Aug 11:37:05 - [info] Started flows
30 Aug 11:37:05 - [info] [mqtt-broker:Hallownet] Connected to broker: mqtt://192.168.4.1:1883
30 Aug 11:37:08 - [info] [e-mail:terr*****@gmail.com] Message sent: 250 2.0.0 OK 1567179428 n201sm627355ywd.104 - gsmtp

I'm not sure how to determine NodeJS version but Node Red is 0.20.7.

Thanks!

That looks like te results of a full deploy. Try this, ssh into the Pi running node red and enter
node-red-stop
then
node-red-start
and see what shows up.

Had to change all instances of :// to *** as the forum software wouldn't let me post it with links intact.

pi@hallownet:~ $ node-red-start

Start Node-RED

Once Node-RED has started, point a browser at http***192.168.4.1: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

Starting as a systemd service.
30 Aug 13:52:58 - [info]
Welcome to Node-RED

30 Aug 13:52:58 - [info] Node-RED version: v0.20.7
30 Aug 13:52:58 - [info] Node.js version: v10.16.0
30 Aug 13:52:58 - [info] Linux 4.19.58+ arm LE
30 Aug 13:53:04 - [info] Loading palette nodes
30 Aug 13:53:30 - [info] Worldmap version 2.0.18
30 Aug 13:53:36 - [info] Dashboard version 2.15.5 started at /ui
30 Aug 13:53:41 - [info] Settings file : /home/pi/.node-red/settings.js
30 Aug 13:53:41 - [info] HTTP Static : /home/pi/.node-red/public
30 Aug 13:53:41 - [info] Context store : 'default' [module=memory]
30 Aug 13:53:41 - [info] User directory : /home/pi/.node-red
30 Aug 13:53:41 - [warn] Projects disabled : editorTheme.projects.enabled=false
30 Aug 13:53:41 - [info] Flows file : /home/pi/.node-red/flows.json
30 Aug 13:53:42 - [info] Server now running at http***127.0.0.1:1880/
30 Aug 13:53:42 - [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.

30 Aug 13:53:42 - [info] Starting flows
30 Aug 13:53:45 - [info] Started flows
30 Aug 13:53:45 - [info] [mqtt-broker:Hallownet] Connected to broker: mqtt192.168.4.1:1883
30 Aug 13:53:53 - [info] [e-mail:terr
**@gmail.com] Message sent: 250 2.0.0 OK 1567187633 z127sm1108413ywd.45 - gsmtp

Thanks

Ok so it is running. Did you add a new node and then do a deploy?

Same result. Browser reports deploy failed. No response from server.
SSH shows nothing beyond what I posted in the last post. No new error.

Can you post your flow as well here? You can export it through the hamburger menu (3 horizontal lines button), export -> flows -> copy to clipboard. Then paste it in a message here through the </> button in the post editor. Your first post shows a TCP connection/socket closing on deploy, which can be caused by a node. The close event happens on a (full) deploy, when a change to that node happens. Seeing your flow might help telling what caused this. If you use any third-party nodes, can you post which nodes that are and the versions of those? You can find those in the palette under installed nodes.

Interesting note. I switched Deploy from Full deploy to modified flows and had the same issue. I switched it to modified nodes and now it's working. I have four flows and it was failing on all of them. Then I made a new flow for testing and tried it with a full deploy. It works. Now I can't reproduce the issue at all so I guess we're done for now.

Thanks again for all the help!

Spoke too soon. Here's a sample flow, the one I'm currently working on.

[
    {
        "id": "c2d849a6.2ff6c8",
        "type": "tab",
        "label": "System",
        "disabled": false,
        "info": ""
    },
    {
        "id": "73bcc98c.c1c048",
        "type": "hostip",
        "z": "c2d849a6.2ff6c8",
        "name": "Host IP",
        "x": 220,
        "y": 120,
        "wires": [
            [
                "56216005.5ba7b"
            ]
        ]
    },
    {
        "id": "ea509fe8.00ad7",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "",
        "payload": "IP address report from Hallownet:  ",
        "payloadType": "str",
        "repeat": "300",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "x": 70,
        "y": 120,
        "wires": [
            [
                "73bcc98c.c1c048",
                "c6d7b091.97b47"
            ]
        ]
    },
    {
        "id": "8516ae1f.a5ae4",
        "type": "e-mail",
        "z": "c2d849a6.2ff6c8",
        "server": "smtp.gmail.com",
        "port": "465",
        "secure": true,
        "tls": true,
        "name": "terry1769@gmail.com",
        "dname": "",
        "x": 880,
        "y": 120,
        "wires": []
    },
    {
        "id": "aab54fcd.1bbbf",
        "type": "comment",
        "z": "c2d849a6.2ff6c8",
        "name": "Email host IP address on startup and when it changes",
        "info": "",
        "x": 220,
        "y": 80,
        "wires": []
    },
    {
        "id": "c6d7b091.97b47",
        "type": "join",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "mode": "custom",
        "build": "string",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "2",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "num",
        "reduceFixup": "",
        "x": 610,
        "y": 160,
        "wires": [
            [
                "ffc74b7f.160b38"
            ]
        ]
    },
    {
        "id": "56216005.5ba7b",
        "type": "json",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 350,
        "y": 120,
        "wires": [
            [
                "ee02b567.8f4118"
            ]
        ]
    },
    {
        "id": "ee02b567.8f4118",
        "type": "delay",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "pauseType": "delay",
        "timeout": ".5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "x": 480,
        "y": 120,
        "wires": [
            [
                "c6d7b091.97b47"
            ]
        ]
    },
    {
        "id": "ffc74b7f.160b38",
        "type": "rbe",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "property": "payload",
        "x": 680,
        "y": 120,
        "wires": [
            [
                "8516ae1f.a5ae4",
                "4f5b5ff9.a87ab"
            ]
        ]
    },
    {
        "id": "4f5b5ff9.a87ab",
        "type": "ui_text",
        "z": "c2d849a6.2ff6c8",
        "group": "9913eca3.be25e",
        "order": 2,
        "width": "8",
        "height": "4",
        "name": "",
        "label": "IPs",
        "format": "{{msg.payload}}",
        "layout": "col-center",
        "x": 840,
        "y": 180,
        "wires": []
    },
    {
        "id": "1abcb54a.f1a67b",
        "type": "exec",
        "z": "c2d849a6.2ff6c8",
        "command": "sudo shutdown -r now",
        "addpay": false,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "Reboot",
        "x": 740,
        "y": 280,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "29de56b0.4d0bfa",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 80,
        "y": 280,
        "wires": [
            [
                "a072235e.38d22"
            ]
        ]
    },
    {
        "id": "7e81c667.8dbd78",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 80,
        "y": 400,
        "wires": [
            [
                "91e1934a.7fb52"
            ]
        ]
    },
    {
        "id": "47554fe7.c3747",
        "type": "exec",
        "z": "c2d849a6.2ff6c8",
        "command": "sudo shutdown -h now",
        "addpay": true,
        "append": "",
        "useSpawn": "false",
        "timer": "",
        "oldrc": false,
        "name": "Shutdown",
        "x": 560,
        "y": 400,
        "wires": [
            [],
            [],
            []
        ]
    },
    {
        "id": "a072235e.38d22",
        "type": "ui_button",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "group": "9913eca3.be25e",
        "order": 5,
        "width": 0,
        "height": 0,
        "passthru": true,
        "label": "Reboot",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "x": 300,
        "y": 280,
        "wires": [
            [
                "1abcb54a.f1a67b"
            ]
        ]
    },
    {
        "id": "91e1934a.7fb52",
        "type": "ui_button",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "group": "9913eca3.be25e",
        "order": 6,
        "width": 0,
        "height": 0,
        "passthru": true,
        "label": "Shut down",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "",
        "payloadType": "str",
        "topic": "",
        "x": 250,
        "y": 400,
        "wires": [
            [
                "47554fe7.c3747"
            ]
        ]
    },
    {
        "id": "5fde69f9.70cf28",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "Eyelene",
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "20",
        "x": 100,
        "y": 500,
        "wires": [
            [
                "dbb3554e.2f77a8"
            ]
        ]
    },
    {
        "id": "dbb3554e.2f77a8",
        "type": "mqtt out",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "cmnd/eyelene/ipaddress",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 290,
        "y": 500,
        "wires": []
    },
    {
        "id": "fd89baf3.cbfec8",
        "type": "mqtt in",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "stat/eyelene/RESULT",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 120,
        "y": 540,
        "wires": [
            [
                "3c7e0c24.965af4"
            ]
        ]
    },
    {
        "id": "de9fbdf1.6be31",
        "type": "change",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "\"Eyelene:  \" & $.payload.IPAddress1",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 560,
        "y": 540,
        "wires": [
            [
                "5f5ac132.3eab9",
                "462a227f.37b06c"
            ]
        ]
    },
    {
        "id": "3c7e0c24.965af4",
        "type": "json",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 290,
        "y": 540,
        "wires": [
            [
                "3e0893e6.7af89c"
            ]
        ]
    },
    {
        "id": "fa697827.521c78",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "Wilma",
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "20",
        "x": 90,
        "y": 580,
        "wires": [
            [
                "d32603b6.17786"
            ]
        ]
    },
    {
        "id": "d32603b6.17786",
        "type": "mqtt out",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "cmnd/Wilma/ipaddress",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 260,
        "y": 580,
        "wires": []
    },
    {
        "id": "4cae62cc.756d2c",
        "type": "mqtt in",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "stat/Wilma/RESULT",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 110,
        "y": 620,
        "wires": [
            [
                "5f585155.472ea"
            ]
        ]
    },
    {
        "id": "5f585155.472ea",
        "type": "json",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 270,
        "y": 620,
        "wires": [
            [
                "d8ce0b1d.76f938"
            ]
        ]
    },
    {
        "id": "3e0893e6.7af89c",
        "type": "switch",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload.IPAddress1",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nnull"
            },
            {
                "t": "null"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 410,
        "y": 540,
        "wires": [
            [
                "de9fbdf1.6be31"
            ],
            []
        ]
    },
    {
        "id": "20d1b49e.8046fc",
        "type": "change",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "\"Wilma:  \" & $.payload.IPAddress1",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 540,
        "y": 620,
        "wires": [
            [
                "5f5ac132.3eab9",
                "462a227f.37b06c"
            ]
        ]
    },
    {
        "id": "d8ce0b1d.76f938",
        "type": "switch",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload.IPAddress1",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nnull"
            },
            {
                "t": "null"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 390,
        "y": 620,
        "wires": [
            [
                "20d1b49e.8046fc"
            ],
            []
        ]
    },
    {
        "id": "fe99dbc5.9ac298",
        "type": "join",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "mode": "custom",
        "build": "string",
        "property": "payload",
        "propertyType": "msg",
        "key": "topic",
        "joiner": "\\n",
        "joinerType": "str",
        "accumulate": false,
        "timeout": "",
        "count": "3",
        "reduceRight": false,
        "reduceExp": "",
        "reduceInit": "",
        "reduceInitType": "",
        "reduceFixup": "",
        "x": 810,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "82598daa.640f2",
        "type": "inject",
        "z": "c2d849a6.2ff6c8",
        "name": "Eyera",
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "20",
        "x": 90,
        "y": 660,
        "wires": [
            [
                "fae6afed.a3a78"
            ]
        ]
    },
    {
        "id": "fae6afed.a3a78",
        "type": "mqtt out",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "cmnd/eyera/ipaddress",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 280,
        "y": 660,
        "wires": []
    },
    {
        "id": "9d21f1cb.a0bde",
        "type": "mqtt in",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "topic": "stat/eyera/RESULT",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 110,
        "y": 700,
        "wires": [
            [
                "c9a59dda.2354b"
            ]
        ]
    },
    {
        "id": "b87203bf.b26ab",
        "type": "change",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "\"Eyera:  \" & $.payload.IPAddress1",
                "tot": "jsonata"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 560,
        "y": 700,
        "wires": [
            [
                "5f5ac132.3eab9",
                "462a227f.37b06c"
            ]
        ]
    },
    {
        "id": "c9a59dda.2354b",
        "type": "json",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 290,
        "y": 700,
        "wires": [
            [
                "afe4a9bc.b63958"
            ]
        ]
    },
    {
        "id": "afe4a9bc.b63958",
        "type": "switch",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "property": "payload.IPAddress1",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nnull"
            },
            {
                "t": "null"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 410,
        "y": 700,
        "wires": [
            [
                "b87203bf.b26ab"
            ],
            []
        ]
    },
    {
        "id": "8e1eea4a.ce6408",
        "type": "rbe",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "func": "rbe",
        "gap": "",
        "start": "",
        "inout": "out",
        "property": "payload",
        "x": 830,
        "y": 600,
        "wires": [
            [
                "1ba05acd.3b3f85",
                "462a227f.37b06c"
            ]
        ]
    },
    {
        "id": "5f5ac132.3eab9",
        "type": "sort",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "order": "ascending",
        "as_num": false,
        "target": "payload",
        "targetType": "msg",
        "msgKey": "",
        "msgKeyType": "elem",
        "seqKey": "payload",
        "seqKeyType": "msg",
        "x": 780,
        "y": 680,
        "wires": [
            [
                "8e1eea4a.ce6408"
            ]
        ]
    },
    {
        "id": "1ba05acd.3b3f85",
        "type": "ui_text",
        "z": "c2d849a6.2ff6c8",
        "group": "9913eca3.be25e",
        "order": 2,
        "width": "8",
        "height": "4",
        "name": "",
        "label": "IPs",
        "format": "{{msg.payload}}",
        "layout": "col-center",
        "x": 910,
        "y": 720,
        "wires": []
    },
    {
        "id": "462a227f.37b06c",
        "type": "debug",
        "z": "c2d849a6.2ff6c8",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 880,
        "y": 540,
        "wires": []
    },
    {
        "id": "9913eca3.be25e",
        "type": "ui_group",
        "z": "",
        "name": "System",
        "tab": "ea8b51f7.38c2c",
        "order": 3,
        "disp": true,
        "width": "10",
        "collapse": true
    },
    {
        "id": "a65db9cb.7ddd28",
        "type": "mqtt-broker",
        "z": "",
        "name": "Hallownet",
        "broker": "192.168.4.1",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    },
    {
        "id": "ea8b51f7.38c2c",
        "type": "ui_tab",
        "z": "",
        "name": "Hallownet",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    }
]

It is posting this to the SSH console again now:

BadRequestError: request aborted
at IncomingMessage.onAborted (/usr/lib/node_modules/node-red/node_modules/raw-body/index.js:231:10)
at IncomingMessage.emit (events.js:198:13)
at abortIncoming (_http_server.js:448:9)
at socketOnClose (_http_server.js:441:3)
at Socket.emit (events.js:203:15)
at TCP._handle.close (net.js:606:12)

The flow you posted only really has MQTT nodes and email nodes that use a socket somewhere deep internally for connection. Are you using any other nodes doing network connection in other flows? When you said it allowed to deploy when you put it to "modified nodes only" it meant that the issue was not in those nodes, but likely something in the same flow (as "modified flows only" did fail). When you do a deploy, the modified nodes only deploy type will call the close event on those nodes one by one, to handle any graceful shutdowns of things when needed, such as closing the connection to a socket by sending a goodbye equivalent. Then the old versions are replaced with the new ones you are deploying, and those are restarted. If you say "modified flows only", the full flow where modifications happened on will get this goodbye action. A full deploy will go as far as doing this to every single node in all of your flows.

While the error does not say what kind of node is responsible, it looks (from a mostly untrained eye) as if it tries to do a goodbye to a socket connection that was already closed, or is unavailable to communicate to. As a result, the socketOnClose call fails with a fatal error for your deploy.

The other flows consist of only MQTT, dashboard nodes, inject nodes, JSON and Change nodes, and a third party dashboard one called node-red-contrib-led-ui. Nothing doing any other kind of network connections at this time. It also now fails on modified nodes about 99% of the time. All I actually did was remove a couple of nodes from that flow. Every once in a while I can sneak a deploy through but mostly it just fails.

What happens if you go into your .node-red
directory and change the name of your flows file? (copy it to a new name) then restart Node-RED
It will start Node-RED with a blank flows file.
Try creating a a simple flow using just the pre installed nodes. eg inject to function to debug and deploy

If that works OK it has to be one of the nodes in your flow. You can copy it back to its original name and restart node-red. I’d start be excluding node-red-contrib-led-ui. and see if that fixes it.

If it starts ok the first time but then is slow or doesn’t respond I would also check if you have a feedback loop (probably via mqtt nodes out and back in) such that it locks up the cpu

Tried the following:
Backed up each flow via export to file
Renamed flows.json to flows.old
Restarted node-red and refreshed browser. Now dealing with an empty canvas
Created flow 1 with just an inject and debug node. Deployed no problem.
Imported the first flow. Deployed no problem.
Imported the second flow. Can't deploy. Original problem.
Deleted first flow. Can't deploy.
Deleted second flow. Can't deploy.
Now I'm back down to just the flow with the inject and debug nodes and can't deploy. Tried just moving the debug node on the page and can't deploy. Doesn't appear to be anything in the flows in my eye. Maybe I'm wrong though.

When you deleted the flows did you also delete any unused config nodes (config nodes are listed in the menu)
What nodes did flow 1 and flow 2 contain?

No, I didn't know to delete the config nodes.

Flow 1:

[
    {
        "id": "d6bcd357.ecdc",
        "type": "tab",
        "label": "Wilma",
        "disabled": false,
        "info": ""
    },
    {
        "id": "aae585dd.e78238",
        "type": "mqtt in",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "stat/Wilma/RESULT",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 90,
        "y": 160,
        "wires": [
            [
                "9b94ce5c.c672c"
            ]
        ]
    },
    {
        "id": "dff24104.539e1",
        "type": "ui_slider",
        "z": "d6bcd357.ecdc",
        "name": "",
        "label": "Wilma's neck",
        "tooltip": "",
        "group": "c7be0905.533bf8",
        "order": 3,
        "width": 0,
        "height": 0,
        "passthru": true,
        "outs": "all",
        "topic": "",
        "min": 0,
        "max": "100",
        "step": 1,
        "x": 650,
        "y": 160,
        "wires": [
            [
                "218ab85e.fd18e8"
            ]
        ]
    },
    {
        "id": "9b94ce5c.c672c",
        "type": "json",
        "z": "d6bcd357.ecdc",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 290,
        "y": 160,
        "wires": [
            [
                "f929856d.cc07e8",
                "cba8f641.670308",
                "feb2fe26.a85b6"
            ]
        ]
    },
    {
        "id": "f929856d.cc07e8",
        "type": "change",
        "z": "d6bcd357.ecdc",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.Dimmer",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 460,
        "y": 160,
        "wires": [
            [
                "dff24104.539e1"
            ]
        ]
    },
    {
        "id": "218ab85e.fd18e8",
        "type": "mqtt out",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "cmnd/Wilma/Dimmer",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 860,
        "y": 160,
        "wires": []
    },
    {
        "id": "9b4edaaa.562298",
        "type": "inject",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 480,
        "y": 380,
        "wires": [
            [
                "70717d2d.5f3654"
            ]
        ]
    },
    {
        "id": "b0e4cdf5.cc5e2",
        "type": "mqtt out",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "cmnd/Wilma/Backlog",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 820,
        "y": 380,
        "wires": []
    },
    {
        "id": "70717d2d.5f3654",
        "type": "ui_button",
        "z": "d6bcd357.ecdc",
        "name": "",
        "group": "cd6ed45.1180c28",
        "order": 1,
        "width": 0,
        "height": 0,
        "passthru": true,
        "label": "Wilma",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "POWER1 1;delay 200;DIMMER 75;delay 200;DIMMER 100;delay 200;DIMMER 0;power2 0;delay 200;power1 0;delay 200",
        "payloadType": "str",
        "topic": "",
        "x": 630,
        "y": 380,
        "wires": [
            [
                "b0e4cdf5.cc5e2"
            ]
        ]
    },
    {
        "id": "3374e7a2.3ab448",
        "type": "mqtt in",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "stat/Wilma/POWER1",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 90,
        "y": 360,
        "wires": [
            [
                "5a9404b7.211e7c"
            ]
        ]
    },
    {
        "id": "5a9404b7.211e7c",
        "type": "ui_led",
        "z": "d6bcd357.ecdc",
        "group": "c7be0905.533bf8",
        "order": 2,
        "width": 0,
        "height": 0,
        "label": "Wilma's Valve",
        "labelPlacement": "left",
        "labelAlignment": "left",
        "colorForValue": [
            {
                "color": "red",
                "value": "OFF",
                "valueType": "str"
            },
            {
                "color": "green",
                "value": "ON",
                "valueType": "str"
            }
        ],
        "name": "Wilma power",
        "x": 290,
        "y": 360,
        "wires": []
    },
    {
        "id": "cba8f641.670308",
        "type": "change",
        "z": "d6bcd357.ecdc",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.POWER2",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 460,
        "y": 220,
        "wires": [
            [
                "345a231d.ca2e0c"
            ]
        ]
    },
    {
        "id": "345a231d.ca2e0c",
        "type": "ui_led",
        "z": "d6bcd357.ecdc",
        "group": "c7be0905.533bf8",
        "order": 4,
        "width": 0,
        "height": 0,
        "label": "Wilma's neck power",
        "labelPlacement": "left",
        "labelAlignment": "left",
        "colorForValue": [
            {
                "color": "red",
                "value": "OFF",
                "valueType": "str"
            },
            {
                "color": "green",
                "value": "ON",
                "valueType": "str"
            }
        ],
        "name": "Wilma neck power",
        "x": 690,
        "y": 220,
        "wires": []
    },
    {
        "id": "9fa617e5.48bfa8",
        "type": "inject",
        "z": "d6bcd357.ecdc",
        "name": "Get IP",
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "20",
        "x": 90,
        "y": 480,
        "wires": [
            [
                "89e4355c.314ff8"
            ]
        ]
    },
    {
        "id": "89e4355c.314ff8",
        "type": "mqtt out",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "cmnd/Wilma/ipaddress",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 270,
        "y": 480,
        "wires": []
    },
    {
        "id": "388b0e7d.dd1c02",
        "type": "change",
        "z": "d6bcd357.ecdc",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.IPAddress1",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 660,
        "y": 280,
        "wires": [
            [
                "922592eb.dd4c4"
            ]
        ]
    },
    {
        "id": "922592eb.dd4c4",
        "type": "debug",
        "z": "d6bcd357.ecdc",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "x": 850,
        "y": 280,
        "wires": []
    },
    {
        "id": "feb2fe26.a85b6",
        "type": "switch",
        "z": "d6bcd357.ecdc",
        "name": "",
        "property": "payload.IPAddress1",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nnull"
            },
            {
                "t": "null"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 2,
        "x": 430,
        "y": 280,
        "wires": [
            [
                "388b0e7d.dd1c02"
            ],
            []
        ]
    },
    {
        "id": "d9acc9f9.984a88",
        "type": "comment",
        "z": "d6bcd357.ecdc",
        "name": "IP address",
        "info": "",
        "x": 840,
        "y": 240,
        "wires": []
    },
    {
        "id": "449d1091.c7d4a",
        "type": "comment",
        "z": "d6bcd357.ecdc",
        "name": "Pull IP address",
        "info": "",
        "x": 100,
        "y": 440,
        "wires": []
    },
    {
        "id": "2b823eeb.5e96f2",
        "type": "comment",
        "z": "d6bcd357.ecdc",
        "name": "Trigger",
        "info": "",
        "x": 490,
        "y": 340,
        "wires": []
    },
    {
        "id": "869c4922.77b968",
        "type": "inject",
        "z": "d6bcd357.ecdc",
        "name": "AP=1",
        "topic": "",
        "payload": "1",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "5",
        "x": 90,
        "y": 580,
        "wires": [
            [
                "67d1381d.a072d8"
            ]
        ]
    },
    {
        "id": "67d1381d.a072d8",
        "type": "mqtt out",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "cmnd/Wilma/AP",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 260,
        "y": 580,
        "wires": []
    },
    {
        "id": "e096fe7a.b5b52",
        "type": "comment",
        "z": "d6bcd357.ecdc",
        "name": "Set access point 1",
        "info": "",
        "x": 130,
        "y": 540,
        "wires": []
    },
    {
        "id": "98aa05df.d8a1a8",
        "type": "inject",
        "z": "d6bcd357.ecdc",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 560,
        "y": 520,
        "wires": [
            []
        ]
    },
    {
        "id": "a65db9cb.7ddd28",
        "type": "mqtt-broker",
        "z": "",
        "name": "Hallownet",
        "broker": "192.168.4.1",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    },
    {
        "id": "c7be0905.533bf8",
        "type": "ui_group",
        "z": "",
        "name": "Status",
        "tab": "ea8b51f7.38c2c",
        "order": 2,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "cd6ed45.1180c28",
        "type": "ui_group",
        "z": "",
        "name": "Switches",
        "tab": "ea8b51f7.38c2c",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "ea8b51f7.38c2c",
        "type": "ui_tab",
        "z": "",
        "name": "Hallownet",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    }
]

Flow 2:

[
    {
        "id": "522c517.26b93b",
        "type": "tab",
        "label": "Eyelene",
        "disabled": false,
        "info": ""
    },
    {
        "id": "2beab18e.555d4e",
        "type": "mqtt in",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "stat/eyelene/POWER1",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 100,
        "y": 80,
        "wires": [
            [
                "8930d8cc.6d9ee8"
            ]
        ]
    },
    {
        "id": "3d1e61b2.9b0f8e",
        "type": "ui_button",
        "z": "522c517.26b93b",
        "name": "Power",
        "group": "cd6ed45.1180c28",
        "order": 6,
        "width": 0,
        "height": 0,
        "passthru": true,
        "label": "Eyelene",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "ON",
        "payloadType": "str",
        "topic": "cmnd/eyelene/POWER1",
        "x": 650,
        "y": 80,
        "wires": [
            [
                "81020e0c.16d1f"
            ]
        ]
    },
    {
        "id": "81020e0c.16d1f",
        "type": "mqtt out",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "cmnd/eyelene/POWER1",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 850,
        "y": 80,
        "wires": []
    },
    {
        "id": "8930d8cc.6d9ee8",
        "type": "ui_led",
        "z": "522c517.26b93b",
        "group": "c7be0905.533bf8",
        "order": 5,
        "width": 0,
        "height": 0,
        "label": "Eyelene Power 1",
        "labelPlacement": "left",
        "labelAlignment": "left",
        "colorForValue": [
            {
                "color": "red",
                "value": "OFF",
                "valueType": "str"
            },
            {
                "color": "green",
                "value": "ON",
                "valueType": "str"
            }
        ],
        "name": "Eyelene power",
        "x": 320,
        "y": 80,
        "wires": []
    },
    {
        "id": "6bd69348.c4b26c",
        "type": "mqtt in",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "stat/eyelene/POWER2",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 100,
        "y": 220,
        "wires": [
            [
                "a801b4f1.df4598"
            ]
        ]
    },
    {
        "id": "a801b4f1.df4598",
        "type": "ui_led",
        "z": "522c517.26b93b",
        "group": "c7be0905.533bf8",
        "order": 6,
        "width": 0,
        "height": 0,
        "label": "Eyelene smoke",
        "labelPlacement": "left",
        "labelAlignment": "left",
        "colorForValue": [
            {
                "color": "red",
                "value": "OFF",
                "valueType": "str"
            },
            {
                "color": "green",
                "value": "ON",
                "valueType": "str"
            }
        ],
        "name": "Eyelene smoke",
        "x": 300,
        "y": 220,
        "wires": []
    },
    {
        "id": "66c0ce59.582c2",
        "type": "ui_led",
        "z": "522c517.26b93b",
        "group": "c7be0905.533bf8",
        "order": 7,
        "width": 0,
        "height": 0,
        "label": "Eyelene Power 3",
        "labelPlacement": "left",
        "labelAlignment": "left",
        "colorForValue": [
            {
                "color": "red",
                "value": "OFF",
                "valueType": "str"
            },
            {
                "color": "green",
                "value": "ON",
                "valueType": "str"
            }
        ],
        "name": "Eyelene power 3",
        "x": 310,
        "y": 300,
        "wires": []
    },
    {
        "id": "e4fbf865.a14a08",
        "type": "mqtt in",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "stat/eyelene/POWER3",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 100,
        "y": 300,
        "wires": [
            [
                "66c0ce59.582c2"
            ]
        ]
    },
    {
        "id": "24d4d8a5.3a1e68",
        "type": "inject",
        "z": "522c517.26b93b",
        "name": "Get IP",
        "topic": "",
        "payload": "",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "20",
        "x": 70,
        "y": 400,
        "wires": [
            [
                "967f0c86.de0b6"
            ]
        ]
    },
    {
        "id": "967f0c86.de0b6",
        "type": "mqtt out",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "cmnd/eyelene/ipaddress",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 250,
        "y": 400,
        "wires": []
    },
    {
        "id": "d150c4c8.254258",
        "type": "mqtt in",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "stat/eyelene/RESULT",
        "qos": "2",
        "datatype": "auto",
        "broker": "a65db9cb.7ddd28",
        "x": 100,
        "y": 440,
        "wires": [
            [
                "cbf067ea.3b7d68"
            ]
        ]
    },
    {
        "id": "6c96dd45.899b94",
        "type": "change",
        "z": "522c517.26b93b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.IPAddress1",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 520,
        "y": 440,
        "wires": [
            [
                "77dae3f.dcfcf1c"
            ]
        ]
    },
    {
        "id": "77dae3f.dcfcf1c",
        "type": "debug",
        "z": "522c517.26b93b",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "x": 710,
        "y": 440,
        "wires": []
    },
    {
        "id": "cbf067ea.3b7d68",
        "type": "json",
        "z": "522c517.26b93b",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 320,
        "y": 440,
        "wires": [
            [
                "6c96dd45.899b94"
            ]
        ]
    },
    {
        "id": "b53a11b2.1603d",
        "type": "comment",
        "z": "522c517.26b93b",
        "name": "Pull IP address",
        "info": "",
        "x": 80,
        "y": 360,
        "wires": []
    },
    {
        "id": "f141a7f0.7f8238",
        "type": "comment",
        "z": "522c517.26b93b",
        "name": "IP address",
        "info": "",
        "x": 700,
        "y": 400,
        "wires": []
    },
    {
        "id": "abbf6ed.97c069",
        "type": "inject",
        "z": "522c517.26b93b",
        "name": "AP=1",
        "topic": "",
        "payload": "1",
        "payloadType": "str",
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": "5",
        "x": 70,
        "y": 540,
        "wires": [
            [
                "ebf24d75.bcac3"
            ]
        ]
    },
    {
        "id": "ebf24d75.bcac3",
        "type": "mqtt out",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "cmnd/eyelene/AP",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 250,
        "y": 540,
        "wires": []
    },
    {
        "id": "ec0f721a.a162c",
        "type": "comment",
        "z": "522c517.26b93b",
        "name": "Set access point 1",
        "info": "",
        "x": 110,
        "y": 500,
        "wires": []
    },
    {
        "id": "6c2d54e2.8c035c",
        "type": "inject",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 500,
        "y": 80,
        "wires": [
            [
                "3d1e61b2.9b0f8e"
            ]
        ]
    },
    {
        "id": "56462cbd.1593c4",
        "type": "comment",
        "z": "522c517.26b93b",
        "name": "Trigger",
        "info": "",
        "x": 470,
        "y": 40,
        "wires": []
    },
    {
        "id": "f6d69531.051188",
        "type": "ui_button",
        "z": "522c517.26b93b",
        "name": "Smoke",
        "group": "cd6ed45.1180c28",
        "order": 6,
        "width": 0,
        "height": 0,
        "passthru": true,
        "label": "Eyelene smoke",
        "tooltip": "",
        "color": "",
        "bgcolor": "",
        "icon": "",
        "payload": "TOGGLE",
        "payloadType": "str",
        "topic": "cmnd/eyelene/POWER2",
        "x": 630,
        "y": 220,
        "wires": [
            [
                "2be4b0e6.f9e37"
            ]
        ]
    },
    {
        "id": "2be4b0e6.f9e37",
        "type": "mqtt out",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "cmnd/eyelene/POWER2",
        "qos": "",
        "retain": "",
        "broker": "a65db9cb.7ddd28",
        "x": 830,
        "y": 220,
        "wires": []
    },
    {
        "id": "d1459c19.1e691",
        "type": "inject",
        "z": "522c517.26b93b",
        "name": "",
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 480,
        "y": 220,
        "wires": [
            [
                "f6d69531.051188"
            ]
        ]
    },
    {
        "id": "1757f7dc.d5f488",
        "type": "comment",
        "z": "522c517.26b93b",
        "name": "Trigger smoke",
        "info": "",
        "x": 510,
        "y": 180,
        "wires": []
    },
    {
        "id": "a65db9cb.7ddd28",
        "type": "mqtt-broker",
        "z": "",
        "name": "Hallownet",
        "broker": "192.168.4.1",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "closeTopic": "",
        "closeQos": "0",
        "closePayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    },
    {
        "id": "cd6ed45.1180c28",
        "type": "ui_group",
        "z": "",
        "name": "Switches",
        "tab": "ea8b51f7.38c2c",
        "order": 1,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "c7be0905.533bf8",
        "type": "ui_group",
        "z": "",
        "name": "Status",
        "tab": "ea8b51f7.38c2c",
        "order": 2,
        "disp": true,
        "width": "6",
        "collapse": false
    },
    {
        "id": "ea8b51f7.38c2c",
        "type": "ui_tab",
        "z": "",
        "name": "Hallownet",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    }
]

Before I try deleting them, is there a way to back up the config nodes?

They will be in flows.old if that was a copy of the complete flows file.