ECONNRESET - can't find the issue

Hello. I understand this has been discussed a number of times, but existing posts don't seem to help. I am unable to get the http-request to work in a very straightforward setup:

  • "fresh from yesterday" install (v16.16.0)
  • only two flows, with three nodes: inject (emply payload), http-request, debug)

The flows are meant to retrieve the status of remote network devices, unit A being a ControlByWeb Temperature module (X-DAQ-2R1-4T-I), unit B is a ControlByWeb X-410. The http-request is meant to grab a report from each unit, the idea being to build actions based on that report down the line, doesn't matter here.

The TempModule (unit A) works flawlessly, returning the expected message on every query. The X-410 (unit B) returns ECONNRESET 98 times out of a 100. This detail matters, because the request does complete sometimes, although I can't find any circumstance or parameter change to explain it.
The http-request query works 100% of the time in a browser, for both A and B, on any computer on the network. When tested on another machine, with another instance of Node Red, these flows work as intended, likely meaning that unit A and B behave properly and communicate properly on the network.

So, I'm left with looking more closely at the target computer, the one on which I see the issue. Disabling firewalls has no effect. There is no other software running on this machine. It is entirely dedicated to running NodeRed and querying these two devices, yet it fails consistently on device B.

I have looked at the network, the switches, the cables, the firmwares, pretty much anything I can think of, so I'm left with suspicion towards NodeRed (especially considering this target computer completes the request when using a browser).

Posting flow and details below, I'm looking for a fresh perspective or perhaps some old wisdom I overlooked. Appreciate any help.

Thanks

edit: may or may not be relevant...

  • target computer is in vlan 7
  • unit A and B are in vlan 5
  • unit A is physically in the same switch as target computer
  • unit B is one switch up from target computer
  • target computer has no issues with network access otherwise
  • no other device on network has access issues with target computer
[
    {
        "id": "296ac06312809291",
        "type": "group",
        "z": "f5e22379405a4d1c",
        "name": "Unit B (bad)",
        "style": {
            "label": true
        },
        "nodes": [
            "1d80a229f288d687",
            "f7afd798cf6bbd01",
            "9d629df8b176f964"
        ],
        "x": 774,
        "y": 359,
        "w": 592,
        "h": 82
    },
    {
        "id": "1d80a229f288d687",
        "type": "debug",
        "z": "f5e22379405a4d1c",
        "g": "296ac06312809291",
        "name": "debug 7",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1260,
        "y": 400,
        "wires": []
    },
    {
        "id": "f7afd798cf6bbd01",
        "type": "http request",
        "z": "f5e22379405a4d1c",
        "g": "296ac06312809291",
        "name": "",
        "method": "GET",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "192.168.5.11/state.xml",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": true,
        "headers": [],
        "x": 1050,
        "y": 400,
        "wires": [
            [
                "1d80a229f288d687"
            ]
        ]
    },
    {
        "id": "9d629df8b176f964",
        "type": "inject",
        "z": "f5e22379405a4d1c",
        "g": "296ac06312809291",
        "name": "",
        "props": [
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "60",
        "crontab": "",
        "once": true,
        "onceDelay": "1",
        "topic": "",
        "x": 870,
        "y": 400,
        "wires": [
            [
                "f7afd798cf6bbd01"
            ]
        ]
    },
    {
        "id": "dfdb25bc8a7dadf5",
        "type": "group",
        "z": "f5e22379405a4d1c",
        "name": "Unit A (good)",
        "style": {
            "label": true
        },
        "nodes": [
            "e49531b1133051ef",
            "43757f14ab6fac3a",
            "c0a08339a0d31ba0"
        ],
        "x": 774,
        "y": 259,
        "w": 592,
        "h": 82
    },
    {
        "id": "e49531b1133051ef",
        "type": "debug",
        "z": "f5e22379405a4d1c",
        "g": "dfdb25bc8a7dadf5",
        "name": "debug 8",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 1260,
        "y": 300,
        "wires": []
    },
    {
        "id": "43757f14ab6fac3a",
        "type": "http request",
        "z": "f5e22379405a4d1c",
        "g": "dfdb25bc8a7dadf5",
        "name": "",
        "method": "GET",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "192.168.5.10/stateFull.xml",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": true,
        "headers": [],
        "x": 1050,
        "y": 300,
        "wires": [
            [
                "e49531b1133051ef"
            ]
        ]
    },
    {
        "id": "c0a08339a0d31ba0",
        "type": "inject",
        "z": "f5e22379405a4d1c",
        "g": "dfdb25bc8a7dadf5",
        "name": "",
        "props": [
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "60",
        "crontab": "",
        "once": true,
        "onceDelay": "1",
        "topic": "",
        "x": 870,
        "y": 300,
        "wires": [
            [
                "43757f14ab6fac3a"
            ]
        ]
    }
]

ECONNRESET means the other side of the TCP conversation (Unit B) closed its end of the connection.

I believe the answer to your question would be found on the logs of the http listener of Unit B.

That's what I gathered as well from looking up the error. But since it only happens to this client specifically and only within node red, I figure something else is amiss. I will however try to see how I can "read" what happens over at unit B. Not a pro in that department I must admit.

@mfassier What do you get if you put this into a web browser on the network?

192.168.5.11/state.xml

I get the expected result.... That's what's infuriating.
image

Also, I had it (unit B, the X410) send me activity logs. It doesn't say much, but it does show that the unit sees both the requests coming from my laptop (.4.103) and from the target computer running node red (.7.3)
image

Are you absolutely certain there is no other device on the network with the IP address ending in 5.11? I only ask because you seemingly have a lot of devices on your network (with devices using 4, 5 and 7 in the third octet of your IP address scheme).

EDIT: Just one more thing to try (if you have not already). Can you change the IP address from 192.168.5.11 to 4.11 or 7.11, just to see if anything changes?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.