Skip to content

Commit f52c27d

Browse files
committed
Use try/finally in close_session to guarantee state cleanup
If driver.quit() throws, state.drivers, state.bidi, and state.currentSession are now still cleaned up via the finally block. Outer try/catch preserved for MCP error response pattern.
1 parent 2805245 commit f52c27d

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/lib/server.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,10 +581,13 @@ server.tool(
581581
try {
582582
const driver = getDriver();
583583
const sessionId = state.currentSession;
584-
await driver.quit();
585-
state.drivers.delete(sessionId);
586-
state.bidi.delete(sessionId);
587-
state.currentSession = null;
584+
try {
585+
await driver.quit();
586+
} finally {
587+
state.drivers.delete(sessionId);
588+
state.bidi.delete(sessionId);
589+
state.currentSession = null;
590+
}
588591
return {
589592
content: [{ type: 'text', text: `Browser session ${sessionId} closed` }]
590593
};

0 commit comments

Comments
 (0)