zeroclaw-labs/zeroclaw · error · anyhow::Error

MCP stdio transport is closed

Error message

MCP stdio transport is closed

What it means

Error "MCP stdio transport is closed" thrown in zeroclaw-labs/zeroclaw.

Source

Thrown at crates/zeroclaw-tools/src/mcp_transport.rs:996

            return Ok(JsonRpcResponse {
                jsonrpc: crate::mcp_protocol::JSONRPC_VERSION.to_string(),
                id: None,
                result: None,
                error: None,
            });
        };
        let response = receiver
            .await
            .map_err(|_| McpTransportError::TransportClosed)?;
        lifecycle.mark_completed();
        drop(write_boundary);
        Ok(response)
    }

    async fn reset(&self) -> Result<()> {
        let mut state = self.state.lock().await;
        if state.closed {
            bail!("MCP stdio transport is closed");
        }

        let old_generation = self.active_generation.fetch_add(1, Ordering::AcqRel);
        self.alive.store(false, Ordering::Release);
        drain_pending_generation(&self.pending, old_generation);
        if let Some(conn) = state.conn.take() {
            Self::reap_conn(conn, &self.config.name).await?;
        }

        let generation = old_generation.wrapping_add(1);
        let conn = Self::spawn(
            &self.config,
            generation,
            Arc::clone(&self.pending),
            Arc::clone(&self.alive),
            Arc::clone(&self.active_generation),
            Arc::clone(&self.child_exited),
        )?;

View on GitHub (pinned to 88bb9c8533)

Solutions

  1. Reconnect/restart the MCP stdio server; the transport is closed.

When it happens

Trigger: Thrown at crates/zeroclaw-tools/src/mcp_transport.rs:996 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23). Data as JSON: /api/errors/140bbddab9627e10. Report an issue: GitHub.