Claude Code Fixes Critical macOS Crash: find Command No Longer Exhausts System Vnode Table
Claude Code 2.1.149 fixes a critical bug where the Bash tool's find command could exhaust the macOS system file and vnode table on large directory trees, causing a host-wide crash. Developers working in large monorepos were most exposed — any task that triggered a broad find traversal could silently consume all available vnodes until the system became unstable or unresponsive. The fix prevents Claude Code from draining the OS-level file descriptor pool during file system traversal operations.
Sources & Mentions
5 external resources covering this update
A Host-Crashing Bug Fixed in Large Codebases
Version 2.1.149 resolves one of the more severe reliability issues to affect Claude Code on macOS in recent months: the find command in the Bash tool could exhaust the system's vnode table and open file descriptor limit when run against large directory trees, causing a host-wide crash.
What Was Happening
When Claude Code used find to traverse a large codebase — a common operation when exploring unfamiliar codebases, building a mental map, or searching for files by pattern — the Bash tool implementation was not imposing any limits on the number of file descriptors opened during the traversal. On macOS, the operating system maintains a finite pool of vnodes (the kernel-level representation of file system objects). If this pool is exhausted, launchd and other system processes can receive fatal signals, causing kernel panics or system-wide instability.
This was particularly dangerous because the failure mode was non-obvious: the crash appeared to be a macOS system failure rather than a Claude Code issue, making it difficult to attribute and reproduce. Developers with monorepos, large node_modules trees, or deep project hierarchies were most likely to encounter it. A prior issue report described the system running out of vnodes (reaching near zero available), triggering kernel panics on affected machines.
Who Was Affected
Any macOS user of Claude Code who worked with large directory trees was potentially affected. Common trigger scenarios included:
- Exploring a large monorepo for the first time in a new session
- Running broad pattern searches across project directories
- Automated subagent tasks that used
findas part of file discovery pipelines
The Fix
The 2.1.149 update resolves the issue by properly constraining the find tool's file descriptor usage during Bash execution, preventing the macOS system vnode table from being overwhelmed. The fix is transparent — no workflow changes are required.
Additional Context
This fix lands alongside the per-category /usage breakdown and several other stability improvements in 2.1.149, continuing a pattern of reliability investments across Anthropic's recent Claude Code releases. For developers running Claude Code against large production codebases, this is one of the most impactful fixes in the 2.1.x series.