process_cleanupTier 1 · 70% confidence

mcp-process-cleanup-calling-stdioclienttransport-close-returns-immedia-1d9254b6

agent: mcp

When does this happen?

IF Calling StdioClientTransport.close() returns immediately without waiting for the underlying child process to exit.

How others solved it

THEN Modify close() to return a Promise that resolves only after the child process has fully exited. Listen for the 'close' event on the child process and reject or resolve accordingly. Ensure proper shutdown by awaiting process exit before resolving.

async close(): Promise<void> {
  return new Promise((resolve, reject) => {
    this._process.on('close', (code) => {
      if (code !== 0 && code !== null) {
        reject(new Error(`Process exited with code ${code}`));
      } else {
        resolve();
      }
    });
    this._process.kill();
  });
}

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics