mirror of
https://github.com/czlonkowski/n8n-mcp.git
synced 2026-01-30 06:22:04 +00:00
Critical bug fix for production crashes during session cleanup. **Root Cause:** Infinite recursion caused by circular event handler chain: - removeSession() called transport.close() - transport.close() triggered onclose event handler - onclose handler called removeSession() again - Loop continued until stack overflow **Solution:** Delete transport from registry BEFORE closing to break circular reference: 1. Store transport reference 2. Delete from this.transports first 3. Close transport after deletion 4. When onclose fires, transport no longer found, no recursion **Impact:** - Eliminates "RangeError: Maximum call stack size exceeded" errors - Fixes session cleanup crashes every 5 minutes in production - Prevents potential memory leaks from failed cleanup **Testing:** - Added regression test for infinite recursion prevention - All 39 session management tests pass - Build and typecheck succeed Conceived by Romuald Członkowski - https://www.aiadvisors.pl/en Closes #427