[BUG] Hung tool calls should be cancellable — a timeout or manual cancel button per tool call

Open 💬 2 comments Opened Jun 18, 2026 by HardwareHarry

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

SSH connection loss shouldn't permanently brick the session — the session should be resumable once connectivity is restored.

I was using Claude connected via SSH to a local development VM. The agent incorrectly ran production firewall enablement on the development host, enabling the linux ufw but without creating any rules (the production servers use a cloudflared tunnel so don't need open ports). The bug is that the chat became completely unresponsive to input during the (self-inflicted) network outage. I was able to manually identify and resolve the issue and eventually the chat came back to life but at an earlier point in the conversation and lost several thousand token's worth of work, all because an SSH connection stopped responding.

What Should Happen?

Claude desktop should not have it's brain tied to a specific network connection. Graceful handling would have allowed much better recovery and avoided lost work.

Error Messages/Logs

Something went wrong
Try sending your message again. If it keeps happening, share feedback so we can investigate.
connect ETIMEDOUT 192.168.19.9:22

Steps to Reproduce

Create a Claude Code SSH connection.
Initiate a development session.
Temporarily block network connectivity on the VM (enable firewall, disable NIC, etc)
Chat = hung unrecoverably
Restore network connection, session recovers but from a random mid-call state.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.77 (Claud Code)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

_No response_

View original on GitHub ↗

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