Summary
Second BLIP instance (or another program) binding the same TCP (0.0.0.0:42070) / UDP port caused an unhandled listen / bind error — Electron showed "A JavaScript error occurred in the Main process" instead of exiting cleanly.
Status
Fixed — listen/bind wrapped in Promises; rollback closes partial listeners; user sees dialog.showErrorBox with ports and env-var hint, then app.quit().
Related
Peer list "duplicate self" mitigated by filtering own blipId for any local IPv4/NIC alias (getLocalIpv4Set), not only getLocalIp().
Acceptance criteria (regression)
Summary
Second BLIP instance (or another program) binding the same TCP (
0.0.0.0:42070) / UDP port caused an unhandledlisten/binderror — Electron showed "A JavaScript error occurred in the Main process" instead of exiting cleanly.Status
Fixed — listen/bind wrapped in Promises; rollback closes partial listeners; user sees
dialog.showErrorBoxwith ports and env-var hint, thenapp.quit().Related
Peer list "duplicate self" mitigated by filtering own
blipIdfor any local IPv4/NIC alias (getLocalIpv4Set), not onlygetLocalIp().Acceptance criteria (regression)