Fix sandbox file watcher hanging on macOS temp directories #475
+129
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
When sandbox is enabled, the Claude CLI's file watcher attempts to monitor macOS temp directories (
/var/folders/...) and fails on:EOPNOTSUPPerrors on.sockfiles from VSCode, Docker, SSH-askpassEINTRerrors on directories likepython-test-discovery-*These unhandled promise rejections cause the SDK to hang indefinitely instead of failing fast with a clear error.
Solution
This PR adds detection and handling for sandbox file watcher errors:
SandboxFileWatcherError- Provides clear error messages with workaround suggestionsEOPNOTSUPPandEINTRerrors from CLI stderrSandboxFileWatcherErrorinstead of hangingChanges
SandboxFileWatcherErrorexception classSubprocessCLITransportto detect file watcher errors from stderrTesting
Example Error Message
Fixes the issue where sandbox-enabled SDK calls would hang forever when VSCode, Docker, or other apps have socket files in system temp directories.