π¦ ClawHub
Openclaw Gateway Fd Fix
by @thomaszhang2661
Fix OpenClaw Gateway "spawn EBADF" / "RPC probe failed" / "EMFILE too many open files" errors caused by file descriptor exhaustion from too many files in wor...
TERMINAL
clawhub install openclaw-gateway-fd-fixπ About This Skill
name: openclaw-gateway-fd-fix description: > Fix OpenClaw Gateway "spawn EBADF" / "RPC probe failed" / "EMFILE too many open files" errors caused by file descriptor exhaustion from too many files in workspace. One-click detection and repair for the most common OpenClaw crash issue. version: 1.0.0 author: thomas-jian-zhang license: MIT tags: - openclaw - gateway - troubleshooting - fd-exhaustion - emfile - spawn-ebadf - maintenance
OpenClaw Gateway File Descriptor Exhaustion Fix
Problem
OpenClaw Gateway crashes or hangs with these errors:spawn EBADF when running exec commandsRPC probe failed / gateway timeoutEMFILE: too many open files, watchRoot Cause
The Gateway automatically watches all files under~/.openclaw/workspace/ for changes. If you place virtual environments (.venv), node_modules, large datasets, or tens of thousands of small files inside workspace, the file watcher will exceed macOS's default file descriptor limit (256), causing the process to hang.Usage
Auto-Fix (Recommended)
Run the one-click repair script:bash fix.sh
What it does:
1. Detects workspace file count
2. Finds and removes unnecessary dependency directories (.venv, node_modules) inside workspace
3. Backs up your existing LaunchAgent plist
4. Updates LaunchAgent to set file descriptor limit to 524,288
5. Restarts the Gateway service
6. Verifies service healthManual Fix Steps
If you prefer to fix manually: 1. Remove large directories from workspace: # Never put these inside ~/.openclaw/workspace/:
rm -rf ~/.openclaw/workspace/*/.venv
rm -rf ~/.openclaw/workspace/*/node_modules
# Move datasets/models/venvs to ~/Downloads/ or /tmp/
2. Update LaunchAgent resource limits:
Edit ~/Library/LaunchAgents/ai.openclaw.gateway.plist and add inside the root :
HardResourceLimits
NumberOfFiles
524288
SoftResourceLimits
NumberOfFiles
524288
3. Restart Gateway:
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
sleep 10 && openclaw gateway status
Permanent Rule (NEVER BREAK)
β Do NOT put these inside~/.openclaw/workspace/:
.venv, venv)node_modules directoriesβ
Put these outside workspace: /tmp/, ~/Downloads/, or any directory outside ~/.openclaw/workspace/
Verification
After fix, run:openclaw gateway status
You should see RPC probe: ok in the output.Troubleshooting
If fix fails: 1. Check logs:tail -50 ~/.openclaw/logs/gateway.err.log
2. Verify no large directories remain in workspace: find ~/.openclaw/workspace -type f | wc -l (should be < 1000)
3. Manually restart Gateway: openclaw gateway stop && openclaw gateway install
π‘ Examples
Auto-Fix (Recommended)
Run the one-click repair script:bash fix.sh
What it does:
1. Detects workspace file count
2. Finds and removes unnecessary dependency directories (.venv, node_modules) inside workspace
3. Backs up your existing LaunchAgent plist
4. Updates LaunchAgent to set file descriptor limit to 524,288
5. Restarts the Gateway service
6. Verifies service healthManual Fix Steps
If you prefer to fix manually: 1. Remove large directories from workspace: # Never put these inside ~/.openclaw/workspace/:
rm -rf ~/.openclaw/workspace/*/.venv
rm -rf ~/.openclaw/workspace/*/node_modules
# Move datasets/models/venvs to ~/Downloads/ or /tmp/
2. Update LaunchAgent resource limits:
Edit ~/Library/LaunchAgents/ai.openclaw.gateway.plist and add inside the root :
HardResourceLimits
NumberOfFiles
524288
SoftResourceLimits
NumberOfFiles
524288
3. Restart Gateway:
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist
sleep 10 && openclaw gateway status
π Tips & Best Practices
If fix fails:
1. Check logs: tail -50 ~/.openclaw/logs/gateway.err.log
2. Verify no large directories remain in workspace: find ~/.openclaw/workspace -type f | wc -l (should be < 1000)
3. Manually restart Gateway: openclaw gateway stop && openclaw gateway install