Could it be some firewall/security settings that Windows has defaulted to after the upgrade to prevent applications listening on ports they haven't been explicitly allowed to?
I've checked and manually disabled windows firewall for the purpose of a test but no luck. but this command netsh interface ipv4 show excludedportrange protocol=tcp
revealed that port 1880
got included in a list of "reserved" port range:
Porta iniziale Porta finale
---------- --------
80 80
1571 1670
1671 1770
1771 1870
1871 1970
1971 2070
2180 2279
2280 2379
2380 2479
2480 2579
2680 2779
2780 2879
3207 3306
3390 3489
3545 3644
5357 5357
5700 5700
8884 8884
19443 19443
50000 50059 *
After changing local port to anything not in those ranges, voilĂ ! Node-Red is happliy running again.
I still can't figure out what exactly modified that list, but at least NR is ok now.
thanks to everybody who chimed in
OK, there is something odd there - is this a corporate machine?
Here is my response to that command:
> netsh interface ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
80 80
5357 5357
50000 50059 *
* - Administered port exclusions.
Rather significantly different - something must have set those exclusions.
In fact, try running:
netsh interface ipv4 show excludedportrange protocol=tcp store=persistent
To see whether those are persistent exclusions or not. If not, then something that is running is excluding them. Either some kind of corporate setting or, more likely, some kind of anti-malware tool being rather too intrusive.
It turns out that it was Hyper-V reserving those ports. It got re-installed by the update (I had it disabled prior to that). Manually deselected the feature again and the excludedportrange is sane again
Thank you!
In my case the problem was with sessionExpiryTime
:
adminAuth: {... sessionExpiryTime: 3*30*24*60*60}
Probably, it's calculated in microseconds so I was getting:
3*30*24*60*60*1000 > 2147483647
The problem solved by changing sessionExpiryTime to 20 days and removing the .sessions.json
Should we really use 32-bit signed integer for this comparison?