After some testing #Haven relay, Claude agent says: ● Bingo! File descriptor leak:
┌───────────┬──────────┬─────┬─────────┐
│ Metric │ Baseline │ Now │ Change │
├───────────┼──────────┼─────┼─────────┤
│ Open FDs │ 97 │ 105 │ +8 │
├───────────┼──────────┼─────┼─────────┤
│ TCP conns │ 31 │ 26 │ -5 │
├───────────┼──────────┼─────┼─────────┤
│ FD max │ - │ 105 │ Growing │
└───────────┴──────────┴─────┴─────────┘
Haven is leaking file descriptors. It opened 8 more FDs but only lost 5 connections, meaning resources aren't being freed properly.
This is likely a goroutine leak in haven—when it processes publishes, goroutines spawn but don't exit cleanly. Over time, FDs hit the ulimit and it crashes.
Your options:
1. Use the watchdog script I provided earlier to auto-restart haven every ~10 min before it hangs
2. Increase the ulimit for haven (might delay the issue):
sudo nano /etc/systemd/system/haven.service
2. Add under [Service]:
LimitNOFILE=4096
2. Then restart
3. Report this to haven developers as a goroutine/FD leak after N publishes
For now, the watchdog is the practical solution. Want me to help you set that up properly?