[Bug]: Unexpected error while running action: ClosedResourceError: during http MCP
Is there an existing issue for the same bug? (If one exists, thumbs up or comment on the issue instead).
- [x] I have checked the existing issues.
Describe the bug and reproduction steps
I am trying to use openhands in docker headless mode with MCP. I have passed the config file via volume mapping and the tool were detected but when the llm request an action i get below error. `Unexpected error while running action: ClosedResourceError: Traceback (most recent call last): File "/app/openhands/runtime/base.py", line 350, in _handle_action observation: Observation = await self.call_tool_mcp(event) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 471, in call_tool_mcp result = await call_tool_mcp_handler(mcp_clients, action) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/utils.py", line 203, in call_tool_mcp response = await matching_client.call_tool(action.name, action.arguments) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/client.py", line 127, in call_tool return await self.session.call_tool(name=tool_name, arguments=args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/client/session.py", line 287, in call_tool return await self.send_request( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/shared/session.py", line 268, in send_request await self._write_stream.send( File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 242, in send self.send_nowait(item) File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 211, in send_nowait raise ClosedResourceError anyio.ClosedResourceError File "/usr/local/lib/python3.12/threading.py", line 1030, in _bootstrap self._bootstrap_inner() File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/usr/local/lib/python3.12/threading.py", line 1010, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 92, in _worker work_item.run() File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/app/openhands/runtime/base.py", line 307, in on_event asyncio.get_event_loop().run_until_complete(self._handle_action(event)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1987, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/app/openhands/runtime/base.py", line 360, in _handle_action self.log('error', f'Unexpected error while running action: {error_message}') File "/app/openhands/runtime/base.py", line 216, in log getattr(logger, level)(message, stacklevel=2) File "/usr/local/lib/python3.12/logging/init.py", line 1568, in error self._log(ERROR, msg, args, **kwargs) File "/usr/local/lib/python3.12/logging/init.py", line 1684, in _log self.handle(record)
15:58:43 - openhands:ERROR: base.py:361 - [runtime 26366027-3152-406b-9d9b-60e2f93aacf9-b7bd5043acf8ff0b] Problematic action: MCPAction THOUGHT: ```plaintext NAME: list_plugins ARGUMENTS: {} Traceback (most recent call last): File "/app/openhands/runtime/base.py", line 350, in _handle_action observation: Observation = await self.call_tool_mcp(event) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 471, in call_tool_mcp result = await call_tool_mcp_handler(mcp_clients, action) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/utils.py", line 203, in call_tool_mcp response = await matching_client.call_tool(action.name, action.arguments) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/client.py", line 127, in call_tool return await self.session.call_tool(name=tool_name, arguments=args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/client/session.py", line 287, in call_tool return await self.send_request( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/shared/session.py", line 268, in send_request await self._write_stream.send( File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 242, in send self.send_nowait(item) File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 211, in send_nowait raise ClosedResourceError anyio.ClosedResourceError File "/usr/local/lib/python3.12/threading.py", line 1030, in _bootstrap self._bootstrap_inner() File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/usr/local/lib/python3.12/threading.py", line 1010, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 92, in _worker work_item.run() File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/app/openhands/runtime/base.py", line 307, in on_event asyncio.get_event_loop().run_until_complete(self._handle_action(event)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1987, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/app/openhands/runtime/base.py", line 361, in _handle_action self.log('error', f'Problematic action: {str(event)}') File "/app/openhands/runtime/base.py", line 216, in log getattr(logger, level)(message, stacklevel=2) File "/usr/local/lib/python3.12/logging/init.py", line 1568, in error self._log(ERROR, msg, args, **kwargs) File "/usr/local/lib/python3.12/logging/init.py", line 1684, in _log self.handle(record)
15:58:43 - openhands:ERROR: loop.py:24 - ClosedResourceError: Traceback (most recent call last): File "/app/openhands/runtime/base.py", line 350, in _handle_action observation: Observation = await self.call_tool_mcp(event) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/runtime/impl/action_execution/action_execution_client.py", line 471, in call_tool_mcp result = await call_tool_mcp_handler(mcp_clients, action) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/utils.py", line 203, in call_tool_mcp response = await matching_client.call_tool(action.name, action.arguments) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/openhands/mcp/client.py", line 127, in call_tool return await self.session.call_tool(name=tool_name, arguments=args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/client/session.py", line 287, in call_tool return await self.send_request( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/mcp/shared/session.py", line 268, in send_request await self._write_stream.send( File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 242, in send self.send_nowait(item) File "/app/.venv/lib/python3.12/site-packages/anyio/streams/memory.py", line 211, in send_nowait raise ClosedResourceError anyio.ClosedResourceError File "/usr/local/lib/python3.12/threading.py", line 1030, in _bootstrap self._bootstrap_inner() File "/usr/local/lib/python3.12/threading.py", line 1073, in _bootstrap_inner self.run() File "/usr/local/lib/python3.12/threading.py", line 1010, in run self._target(*self._args, **self._kwargs) File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 92, in _worker work_item.run() File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) File "/app/openhands/runtime/base.py", line 307, in on_event asyncio.get_event_loop().run_until_complete(self._handle_action(event)) File "/usr/local/lib/python3.12/asyncio/base_events.py", line 674, in run_until_complete self.run_forever() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 641, in run_forever self._run_once() File "/usr/local/lib/python3.12/asyncio/base_events.py", line 1987, in _run_once handle._run() File "/usr/local/lib/python3.12/asyncio/events.py", line 88, in _run self._context.run(self._callback, *self._args) File "/app/openhands/runtime/base.py", line 362, in _handle_action self.send_error_message(err_id, error_message) File "/app/openhands/runtime/base.py", line 226, in send_error_message self.status_callback('error', message_id, message) File "/app/openhands/core/loop.py", line 24, in status_callback logger.error(msg) File "/usr/local/lib/python3.12/logging/init.py", line 1568, in error self._log(ERROR, msg, args, **kwargs) File "/usr/local/lib/python3.12/logging/init.py", line 1684, in _log self.handle(record)`
OpenHands Installation
Docker command in README
OpenHands Version
No response
Operating System
None
Logs, Errors, Screenshots, and Additional Context
No response