[Bug] Cowork RPC error -1: process already running on Windows 11

Resolved 💬 2 comments Opened Feb 24, 2026 by garguru Closed Mar 24, 2026

Bug Description
"Cowork RPC error -1: process already running. Windows 11, v2.1.51. Happens repeatedly."
That gets it on Anthropic's radar for a proper fix.

Environment Info

  • Platform: win32
  • Terminal: vscode
  • Version: 2.1.50
  • Feedback ID: 99ad8eb9-5ee7-48e4-ab60-95edca99c393

Errors

[{"error":"Error: Command failed: C:\\Users\\mgarr\\.local\\bin\\claude.exe --ripgrep --files --glob **/.mcp.json --sort=modified --no-ignore --hidden C:\\Users\\mgarr\n    at genericNodeError (node:child_process:1010:22)\n    at exitHandler (node:child_process:103:28)\n    at emit (node:events:98:22)\n    at #maybeClose (node:child_process:778:16)\n    at #handleOnExit (node:child_process:532:72)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-02-24T00:58:39.752Z"},{"error":"RipgrepTimeoutError: Ripgrep search timed out after 20 seconds. The search may have matched files but did not complete in time. Try searching a more specific path or pattern.\n    at f (B:/~BUN/root/claude.exe:116:189)\n    at <anonymous> (B:/~BUN/root/claude.exe:116:403)\n    at exitHandler (node:child_process:109:27)\n    at emit (node:events:98:22)\n    at #maybeClose (node:child_process:778:16)\n    at #handleOnExit (node:child_process:532:72)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-02-24T00:58:39.756Z"},{"error":"Error: Command failed: C:\\Users\\mgarr\\.local\\bin\\claude.exe --ripgrep --files --glob **/claude_desktop_config.json --sort=modified --no-ignore --hidden C:\\Users\\mgarr\\AppData\nrg: C:\\Users\\mgarr\\AppData\\Local\\ElevatedDiagnostics: IO error for operation on C:\\Users\\mgarr\\AppData\\Local\\ElevatedDiagnostics: Access is denied. (os error 5)\n\n    at genericNodeError (node:child_process:1010:22)\n    at exitHandler (node:child_process:103:28)\n    at emit (node:events:98:22)\n    at #maybeClose (node:child_process:778:16)\n    at #handleOnExit (node:child_process:532:72)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-02-24T00:58:40.491Z"},{"error":"RipgrepTimeoutError: Ripgrep search timed out after 20 seconds. The search may have matched files but did not complete in time. Try searching a more specific path or pattern.\n    at f (B:/~BUN/root/claude.exe:116:189)\n    at <anonymous> (B:/~BUN/root/claude.exe:116:403)\n    at exitHandler (node:child_process:109:27)\n    at emit (node:events:98:22)\n    at #maybeClose (node:child_process:778:16)\n    at #handleOnExit (node:child_process:532:72)\n    at processTicksAndRejections (native:7:39)","timestamp":"2026-02-24T00:58:40.492Z"},{"error":"Error: Failed to create shell snapshot: Command failed: C:\\Program Files\\Git\\bin\\bash.exe -c -l SNAPSHOT_FILE='C:\\Users\\mgarr\\.claude\\shell-snapshots\\snapshot-bash-1771894738793-oe3dw9.sh'\n      source \"C:\\Users\\mgarr\\.bashrc\" < /dev/null\n\n      # First, create/clear the snapshot file\n      echo \"# Snapshot file\" >| \"$SNAPSHOT_FILE\"\n\n      # When this file is sourced, we first unalias to avoid conflicts\n      # This is necessary because aliases get \"frozen\" inside function definitions at definition time,\n      # which can cause unexpected behavior when functions use commands that conflict with aliases\n      echo \"# Unset all aliases to avoid conflicts with functions\" >> \"$SNAPSHOT_FILE\"\n      echo \"unalias -a 2>/dev/null || true\" >> \"$SNAPSHOT_FILE\"\n\n      \n      echo \"# Functions\" >> \"$SNAPSHOT_FILE\"\n\n      # Force autoload all functions first\n      declare -f > /dev/null 2>&1\n\n      # Now get user function names - filter completion functions (single underscore prefix)\n      # but keep double-underscore helpers (e.g. __zsh_like_cd from mise, __pyenv_init)\n      declare -F | cut -d' ' -f3 | grep -vE '^_[^_]' | while read func; do\n        # Encode the function to base64, preserving all special characters\n        encoded_func=$(declare -f \"$func\" | base64 )\n        # Write the function definition to the snapshot\n        echo \"eval \\\"\\$(echo '$encoded_func' | base64 -d)\\\" > /dev/null 2>&1\" >> \"$SNAPSHOT_FILE\"\n      done\n    \n      echo \"# Shell Options\" >> \"$SNAPSHOT_FILE\"\n      shopt -p | head -n 1000 >> \"$SNAPSHOT_FILE\"\n      set -o | grep \"on\" | awk '{print \"set -o \" $1}' | head -n 1000 >> \"$SNAPSHOT_FILE\"\n      echo \"shopt -s expand_aliases\" >> \"$SNAPSHOT_FILE\"\n    \n      echo \"# Aliases\" >> \"$SNAPSHOT_FILE\"\n      # Filter out winpty aliases on Windows to avoid \"stdin is not a tty\"…

Note: Content was truncated.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗