@@ -54,9 +54,9 @@ export class McpSessionManager {
5454 const now = Date . now ( )
5555 for ( const [ id , entry ] of this . transports ) {
5656 if ( now - entry . lastActivityAt > SESSION_TTL_MS ) {
57- void entry . transport . close ?.( )
58- void entry . userInjector [ Symbol . asyncDispose ] ( )
5957 this . transports . delete ( id )
58+ void entry . transport . close ?.( )
59+ void entry . userInjector [ Symbol . asyncDispose ] ( ) . catch ( ( ) => { } )
6060 }
6161 }
6262 }
@@ -68,8 +68,11 @@ export class McpSessionManager {
6868 public register ( sessionId : string , transport : StreamableHTTPServerTransport , userInjector : Injector ) {
6969 this . transports . set ( sessionId , { transport, userInjector, lastActivityAt : Date . now ( ) } )
7070 transport . onclose = ( ) => {
71- void this . transports . get ( sessionId ) ?. userInjector [ Symbol . asyncDispose ] ( )
72- this . transports . delete ( sessionId )
71+ const existing = this . transports . get ( sessionId )
72+ if ( existing ) {
73+ this . transports . delete ( sessionId )
74+ void existing . userInjector [ Symbol . asyncDispose ] ( ) . catch ( ( ) => { } )
75+ }
7376 }
7477 }
7578
@@ -81,7 +84,7 @@ export class McpSessionManager {
8184 clearInterval ( this . sweepInterval )
8285 for ( const [ , entry ] of this . transports ) {
8386 void entry . transport . close ?.( )
84- void entry . userInjector [ Symbol . asyncDispose ] ( )
87+ void entry . userInjector [ Symbol . asyncDispose ] ( ) . catch ( ( ) => { } )
8588 }
8689 this . transports . clear ( )
8790 }
0 commit comments