debugMajorpending
Node.js EventEmitter memory leak — MaxListenersExceededWarning
Viewed 0 times
MaxListenersExceededWarningEventEmittermemory leaksetMaxListenersremoveListeneronce
nodejs
Error Messages
Problem
Node.js warns about possible EventEmitter memory leak: MaxListenersExceededWarning. The default limit is 10 listeners per event. This often happens in long-running servers where listeners are added in request handlers but never removed.
Solution
Do NOT just increase the limit with setMaxListeners — find the leak first. Common causes: (1) Adding listeners inside request handlers without cleanup. (2) Creating new EventEmitter instances per request instead of reusing. (3) Not removing listeners when components/connections close. Fix: use .once() for one-time listeners, remove listeners in cleanup/close handlers, and use AbortSignal for cancellable listeners.
Why
Each listener registration adds a function reference. Without removal, listeners accumulate over the process lifetime, consuming memory and causing duplicate event handling.
Revisions (0)
No revisions yet.