Skip to content

Frequent crashes on WSL2 ARM64: setRawMode EIO kills sessions mid-work #2379

@ronniegeraghty

Description

@ronniegeraghty

Description

Copilot CLI crashes frequently on WSL2 (Ubuntu 24.04, aarch64) with setRawMode EIO errors. The process loses its stdin connection mid-session and shuts down. This is happening multiple times per day — 21 crashes in the past 8 days, with 13 on a single day.

This is distinct from #2088 (React hooks rendering error). The crash signature here is a terminal stdin disconnection, not a rendering bug.

Environment

  • OS: Ubuntu 24.04.4 LTS on WSL2
  • Kernel: 6.6.87.2-microsoft-standard-WSL2
  • Architecture: aarch64 (ARM64)
  • Terminal: VS Code Insiders integrated terminal (github.copilot-chat v0.42.2026032703)
  • Node.js: v18.19.1
  • Copilot CLI: 1.0.13-1 (installed via npm install -g @github/copilot)
  • Shell: bash

Crash Signature

From the process logs (~/.copilot/logs/process-*.log):

2026-03-28T18:20:57.662Z [DEBUG] [shutdown] Starting dispose: InkInstance.rerender
2026-03-28T18:20:57.679Z [DEBUG] Ignoring transient stdin error: setRawMode EIO
2026-03-28T18:20:57.679Z [INFO] Unregistering foreground session: fd8423ed-...

The pattern is consistent across all 21 crashes:

  1. Session is running normally (often during background agent work or tool calls)
  2. setRawMode EIO — stdin connection to the terminal is severed
  3. Session shuts down, losing all in-progress work

Frequency

Date Crashes
2026-03-21 1
2026-03-23 2
2026-03-25 1
2026-03-26 1
2026-03-27 2
2026-03-28 13
2026-03-29 1

The acceleration on Mar 28 correlates with heavier usage (multi-agent workflows with --agent flag), but crashes also occur during simple single-agent sessions.

Reproduction

Not reliably reproducible on demand, but happens consistently during extended sessions (10-60 minutes). More frequent when:

  • Using copilot --agent squad (custom agent with sub-agent spawning)
  • Multiple background tool calls running in parallel
  • Sessions lasting >15 minutes

What I've Tried

  • Version pinning: Does not work. All npm versions (@github/copilot@1.0.5 through @latest) and all GitHub Release tags (v1.0.5 through v1.0.12) deliver the identical 1.0.13-1 binary. Old binaries are not preserved in the registry.
  • Clean reinstall: npm cache clean --force + sudo npm install -g @github/copilot@latest — crashes persist
  • Removing duplicate installs: Had both curl (~/.local/bin/copilot) and npm (/usr/local/bin/copilot) — removed curl install, no improvement
  • --no-auto-update: Using this flag to prevent mid-session updates

Expected Behavior

Sessions should survive stdin interruptions gracefully (reconnect or buffer) rather than terminating. At minimum, the CLI should save session state before shutting down so --resume can recover.

Additional Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    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