-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Copilot CLI terminal freezes when a stdio MCP child crashes mid-call #3067
Copy link
Copy link
Open
Labels
area:input-keyboardKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text inputKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text inputarea:mcpMCP server configuration, discovery, connectivity, OAuth, policy, and registryMCP server configuration, discovery, connectivity, OAuth, policy, and registryarea:platform-windowsWindows-specific: PowerShell, cmd, Git Bash, WSL, Windows TerminalWindows-specific: PowerShell, cmd, Git Bash, WSL, Windows Terminal
Metadata
Metadata
Assignees
Labels
area:input-keyboardKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text inputKeyboard shortcuts, keybindings, copy/paste, clipboard, mouse, and text inputarea:mcpMCP server configuration, discovery, connectivity, OAuth, policy, and registryMCP server configuration, discovery, connectivity, OAuth, policy, and registryarea:platform-windowsWindows-specific: PowerShell, cmd, Git Bash, WSL, Windows TerminalWindows-specific: PowerShell, cmd, Git Bash, WSL, Windows Terminal
Type
Fields
Give feedbackNo fields configured for Bug.
Bug: Copilot CLI terminal freezes when a stdio MCP child crashes mid-call
What happens
When a stdio MCP child process crashes during an in-flight tool call, the host Copilot CLI terminal becomes fully unresponsive — keystrokes, mouse, and Ctrl+C are all ignored. Only force-closing the Windows Terminal tab or killing
pwsh.exerecovers it. Reproduced twice in a row on Windows 11; affected tabs stay frozen indefinitely.Repro
A reliable trigger today is the WorkIQ MCP server, which has a deterministic
msalruntime.DLLcrash during concurrent token-refresh (microsoft/work-iq#113):/plugin install workiq@work-iqworkiq-ask_work_iqcalls in parallel.Application Errorin the Windows event log:workiq.exe,msalruntime.DLL, exception0xc000027b).Why it matters
A misbehaving plugin should never be able to take the host CLI hostage. Ctrl+C must always cancel the in-flight tool call and return control to the prompt, regardless of child-process state.
Likely cause
Host appears to do a blocking read on the child's stdout for a JSON-RPC response, and never notices process death / EOF. Concurrent calls compound the issue — multiple in-flight requests all become unresolvable after a single child crash.
Environment
@microsoft/workiq0.4.1.19742 (stdio, via npx)