Skip to content

Long-running slave command times out at tools/call layer and blocks agent discovery #7

Description

@yzs15

Summary

A long-running driver/run_slave_powershell call timed out at the MCP tools/call layer after about 120 seconds even though the request passed timeout_sec=600. The underlying command appeared to continue running on the Windows slave, but the caller received no task_id, so there was no way to poll or cancel it.

While the command was still running, even driver/list_agents timed out. After waiting, list_agents recovered and the command had completed successfully.

I am filing this in both agentserver/agentserver and agentserver/loom because I am not sure which layer owns the behavior.

Expected behavior

  • timeout_sec is honored, or the call returns an async task_id before the outer tools/call timeout.
  • Long-running slave commands do not block list_agents or unrelated driver queries.
  • If a call times out, the response exposes enough state to poll or cancel the underlying task.

Actual behavior

  • driver/run_slave_powershell timed out at about 120 seconds despite timeout_sec=600.
  • No task_id was returned to the caller for the long-running command.
  • driver/list_agents also timed out while the command was still running.
  • Later, the slave/driver recovered and the command had completed successfully.

Reproduction

  1. Use a Windows slave with PowerShell support.
  2. Run a long command through driver/run_slave_powershell with timeout_sec=600, for example:
winget install --id Python.Python.3.14 -e --scope machine --silent --accept-package-agreements --accept-source-agreements
  1. Observe the MCP tools/call timing out after about 120 seconds.
  2. Immediately call driver/list_agents.
  3. Observe list_agents timing out until the long command finishes.

Environment observed

  • Slave OS: Microsoft Windows Server 2025 Datacenter
  • Slave command interface: PowerShell
  • Driver tool: driver/run_slave_powershell
  • Related driver query: driver/list_agents

Why this matters

From the orchestrator/user perspective, the workspace looks stuck: the long-running task cannot be polled or cancelled, and agent discovery also becomes unavailable. This makes normal recovery logic hard to implement.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions