Tool calls (WebFetch) can hang indefinitely with no timeout, causing permanent process stall

Resolved 💬 5 comments Opened Mar 15, 2026 by waynezero Closed Apr 15, 2026

Description

A single WebFetch call that never returns (no response, no error) causes the entire Claude Code process to hang permanently. No timeout mechanism exists at the tool-call level.

Reproduction

Session 283dd388 on Claude Code 2.1.76 (Opus), --permission-mode bypassPermissions.

A subagent issued 2 parallel WebFetch calls to PubMed:

[39] 17:39:11 CALL id=toolu_019EmHv5aN2k2TiCRhbW33GU WebFetch (PubMed efetch)
[40] 17:39:12 CALL id=toolu_01SQ2BWcP7oNyb2AYncxytcK WebFetch (PubMed efetch)
[41] 17:39:12 RESULT id=toolu_01SQ2BWcP7oNyb2AYncxytcK err=True
                    id=toolu_019EmHv5aN2k2TiCRhbW33GU — never returned

One returned an error. The other silently disappeared — no response, no error, no timeout. The subagent waited indefinitely. The main agent waited for the subagent indefinitely. The process ran for 11 hours 35 minutes doing nothing (confirmed via ps -eo etime and session file not growing).

Expected behavior

Tool calls should have a timeout (e.g. 60s for WebFetch). On timeout, return an error so the model can retry or degrade gracefully.

Actual behavior

Process hangs permanently. kill is the only recovery path. All in-progress work is lost.

Impact

Makes long-running autonomous tasks (Skills, multi-step agents) unreliable. Any single tool call can permanently stall the process with no diagnostic output.

Environment

  • Claude Code version: 2.1.76
  • Model: Opus
  • OS: macOS (Darwin 25.3.0)
  • Permission mode: bypassPermissions

View original on GitHub ↗

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