Skip to content

Commit 54b0cdc

Browse files
committed
fixed mcp server disposition issues
1 parent 2f2dada commit 54b0cdc

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

service/src/mcp/mcp-server.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)