Node.js Memory Leak: Two Weeks to Find One Missing removeListener()
Incident Report: Node.js Memory Leak Analysis Date: 2026-01-20 Severity: P1 (Production Impact) MTTR: 14 days Root Cause: Event listener leak in WebSocket handler Timeline of Events Day 1 - Jan 6, 09:30 UTC Monitoring alerts: API instances restarting every 6 hours Memory usage shows sawtooth pattern (gradual climb, sudden drop) Initial hypothesis: Database connection leak Day 3 - Jan 8 Ruled out database connections (pool metrics normal) Added heap profiling to staging environment Identified EventEmitter instances growing unbounded Day 7 - Jan 13 ...