[2.0.0-beta.1] NAS SMB hang → LAN ingress stops with HPM ECONNRESET, all app containers removed and never recreated, network state wiped; daemon also ignores SIGTERM
Author: dfein38347gCreated Sep 12, 2026Updated Sep 12, 2026
Environment
- umbrelOS 2.0.0-beta.1, x86, 20 installed apps
- One CIFS share from a NAS box on the LAN (
//<NAS>/Media), attached to 5 apps (a media stack) via the 2.0 Files → Network storage subsystem
Timeline (UTC, Sep 12; host clock NTP-synchronized)
- 13:26:10 samba/winbindd restarted (2.0 network-stack component)
- 13:29:49 kernel:
CIFS: VFS: \\<NAS> has not responded in 180 seconds. Reconnecting...(transient ~3-min NAS-side hang; NAS healthy since, <1ms RTT) - ~13:30 umbreld reissued its LAN-ingress TLS cert (lan-ingress/{ca,server}.pem, ca.srl mtime 13:30)
- 13:31:31–13:31:52 appstore git clones "Request timed out" (getumbrel/umbrel-apps, getAlby/umbrel-community-app-store, reddexx/umbrel-AppStore)
- 13:40:00
/home/umbrel/umbrel/network/state dir emptied - 13:40:07
umbreld[1389]: [laningress] Stopping LAN ingress - 13:40:14
umbreld[1389]: [laningress] [error] [HPM] ECONNRESET: Error: socket hang up - 13:40:11–23
Going to remove <APP>_server_1, <APP>_mac_1, <APP>_indexer_proxy_1, plus the shared Tor proxy container — container metadata for ALL installed apps vanished from /var/lib/docker/containers (dir emptied at 13:40) - After 13:40: daemon stayed "active (running)" but port 80/443 listeners gone → web UI unreachable for 6+ hours; all app containers stayed missing. Meanwhile tRPC
get_app_statuskept reportingreadyfor the removed apps (state desync). - Docker images, all named volumes, and all app-data config dirs were untouched throughout.
Resulting defects
- A transient SMB/NAS unavailability triggers a network re-provision that (a) stops the LAN ingress, (b) crashes it mid-shutdown ([HPM] ECONNRESET), (c) wipes network state, and (d) removes every app's containers — and the "up" half (recreate + restart ingress) never runs. Only a full daemon restart recovers (the boot-time reconcile recreated all app stacks in ~35s and brought the ingress back — that path works).
umbreldignores SIGTERM: aftersystemctl restart, the service sat indeactivating (stop-sigterm)for 3+ minutes (unit hasTimeoutStopSec=15min), so a manual KILL was required. A host reboot could therefore stall 15 min on this unit.get_app_statusreportsreadyfor apps whose containers don't exist — no reconciliation between daemon state and docker reality.- Minor: at clean boot, ingress proxies
trpc/user.createWebSocketTicketbefore the internal 127.0.0.1:22080 listener is ready → one[HPM] ... ECONNREFUSED(self-recovering).
Expected behavior
A transient SMB unavailability (or a samba restart) should at worst re-attach the affected mount, not stop the ingress, wipe network state, and tear down — and leave missing — the containers of every installed app.
Workaround that recovered the box
sudo systemctl kill --signal=KILL umbrel && sudo systemctl start umbrel (a plain systemctl restart will hang in stop for up to 15 min on this build)
Related
#2211 (GC abort → recreate all), #2114 (1.7 beta state desync) — both distinct: here the process never crashed; the graceful re-provision simply aborted halfway.
Source: getumbrel/umbrel