Since upgrading to firmware 13.4.1, my Homey Pro reliably becomes unreachable (app/web UI) roughly 6 hours after every boot, then stays broken until I reboot it. It happened again this morning after a reboot: fine until ~13:00, broken by ~14:00.
What I’ve ruled out:
- Not a memory-pressure issue. I log Homey.system.getMemoryInfo() every 10 min. Total usage stayed around 780-866 MB the whole time (device has 2 GB), climbing only slowly and smoothly - no spike, no OOM pattern.
- Not a total network outage: my “Easy Logger” app kept successfully writing rows to a remote Google Sheet the entire time the problem was happening (13:00 through at least 14:30), so Homey’s core / at least one app’s outbound connectivity was still working.
What actually fails:
Starting almost exactly ~13:00 (about 6h after boot), scripts running in the HomeyScript app start getting connection errors on NEW outbound connections:
13:00:57 ERROR update_devices Error on script: Error: connect EHOSTUNREACH 217.182.125.204:443
13:15:31 ERROR update_devices Error on script: Error: connect ENETUNREACH 217.182.125.204:443 - Local (0.0.0.0:0)
13:15:52 ERROR weather_computer Global error on current weather: FetchError: request to https://api.open-meteo.com/... failed, reason: connect ENETUNREACH 94.130.142.35:443 - Local (0.0.0.0:0)
14:01:30 ERROR devices_manager Error while processing Volet Chambre Parental (connect ENETUNREACH 217.182.125.204:443 - Local (0.0.0.0:0))
(repeats every ~15 min from then on, for both 217.182.125.204 and 94.130.142.35 - two unrelated destinations)
Notably, update_devices and devices_manager don’t call fetch() at all - they only use Homey.devices.getDevices() / device.setCapabilityValue(). So even plain SDK calls from HomeyScript start failing with ENETUNREACH/EHOSTUNREACH (“Local (0.0.0.0:0)” - i.e. it can’t even get a local socket/route), while another app (Easy Logger) keeps making outbound HTTPS calls successfully during the same window.
That pattern - one app’s outbound connections start failing to open while another app’s keep working, “Local (0.0.0.0:0)” suggesting no local socket/port available - looks like some per-app resource (sockets/fds/ports) tied to the HomeyScript app’s container is being exhausted after a few hours of normal script activity, not a general Wi-Fi/network outage.
I tried the obvious app-side fix first: some of my scripts were calling fetch() on error paths without consuming the response body (a documented Node/undici leak pattern that keeps the socket open). I fixed that in the scripts that do their own fetch() (weather API, two other cloud APIs) and re-deployed. Same failure happened again the next morning at almost the same ~6h mark - so whatever is leaking isn’t (only) in my own fetch() error paths; it looks like it’s happening on routine Homey SDK traffic itself (getDevices, setCapabilityValue, flow.runFlowCardAction), which runs very frequently across my scripts (every 5-15 min via several scripts).
Questions:
- Is this a known issue with the HomeyScript app / firmware 13.x - some kind of connection/socket leak in how HomeyScript’s sandbox relays SDK calls (to 217.182.125.204, I’m guessing that’s an Athom-internal relay address) over several hours of uptime?
- Is there a recommended workaround (e.g. periodically restarting the HomeyScript app) short of a full Homey reboot every few hours?
- Happy to share the full raw memory_debug JSON dump (getMemoryInfo()/getInfo() responses) and more log excerpts if that helps diagnose it.
Homey Pro model: Homey Pro (Early 2023)
Firmware: 13.4.1 (issue started with firmware 13.x; did not happen before)
