Skip to content

Commit 90f2b5a

Browse files
committed
fix: close session with invalid version on failure
1 parent 5a39f1c commit 90f2b5a

File tree

2 files changed

+10
-23
lines changed

2 files changed

+10
-23
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "uipath-mcp"
3-
version = "0.0.44"
3+
version = "0.0.45"
44
description = "UiPath MCP SDK"
55
readme = { file = "README.md", content-type = "text/markdown" }
66
requires-python = ">=3.10"

src/uipath_mcp/_cli/_runtime/_runtime.py

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ async def handle_signalr_open(self) -> None:
218218
self.session_servers[self.server.session_id] = session_server
219219
await session_server.get_incoming_messages()
220220
except Exception as e:
221-
await self.dispose_session()
221+
await self._dispose_session()
222222
logger.error(f"Error starting session server: {str(e)}")
223223

224224
async def handle_signalr_close(self) -> None:
@@ -275,7 +275,7 @@ async def _register(self) -> None:
275275

276276
# Now that we're outside the context managers, check if initialization succeeded
277277
if not initialization_successful:
278-
await self.dispose_session()
278+
await self._dispose_session()
279279
error_message = "The server process failed to initialize. Verify environment variables are set correctly."
280280
if server_stderr_output:
281281
error_message += f"\nServer error output:\n{server_stderr_output}"
@@ -324,7 +324,7 @@ async def _register(self) -> None:
324324
UiPathErrorCategory.SYSTEM,
325325
) from e
326326

327-
async def dispose_session(self) -> None:
327+
async def _dispose_session(self) -> None:
328328
"""Dispose of the session on the server."""
329329
try:
330330
response = self._uipath.api_client.request(
@@ -334,36 +334,23 @@ async def dispose_session(self) -> None:
334334
jsonrpc="2.0",
335335
id=0,
336336
result={
337-
"protocolVersion": "invalid-version",
337+
"protocolVersion": "initiliaze-failure",
338338
"capabilities": {},
339-
"serverInfo": {"name": "server", "version": "1.0"}
340-
}
339+
"serverInfo": {"name": self.server.name, "version": "1.0"},
340+
},
341341
).model_dump(),
342342
)
343343
if response.status_code == 202:
344344
logger.info(
345-
f"Sent outgoing cancelled message to UiPath MCP Server: {self.server.session_id}"
346-
)
347-
else:
348-
logger.error(
349-
f"Error sending outgoing cancelled message to to UiPath MCP Server: {response.status_code} - {response.text}"
350-
)
351-
352-
response = self._uipath.api_client.request(
353-
"POST",
354-
f"mcp_/mcp/{self.server.name}/dispose?sessionId={self.server.session_id}",
355-
)
356-
if response.status_code == 202:
357-
logger.info(
358-
f"Sent session dispose signalr to UiPath MCP Server: {self.server.session_id}"
345+
f"Sent outgoing session dispose message to UiPath MCP Server: {self.server.session_id}"
359346
)
360347
else:
361348
logger.error(
362-
f"Error sending session dispose signalr to UiPath MCP Server: {response.status_code} - {response.text}"
349+
f"Error sending session dispose message to UiPath MCP Server: {response.status_code} - {response.text}"
363350
)
364351
except Exception as e:
365352
logger.error(
366-
f"Error sending session dispose signalr to UiPath MCP Server: {e}"
353+
f"Error sending session dispose signal to UiPath MCP Server: {e}"
367354
)
368355

369356
async def cleanup(self) -> None:

0 commit comments

Comments
 (0)