What This Error Means

Error: Too many open files @ rb_sysopen

Your system has reached the maximum number of files it can have open simultaneously (file descriptor limit). This commonly happens during:

  • Homebrew cleanup operations
  • Large file operations
  • Package installations with many files

Quick Fix

1. Check Current Limit

ulimit -n

Typical default: 1024

2. Temporarily Increase Limit

# Set to 4096 for current terminal session
ulimit -n 4096
 
# Then retry your failed command
brew cleanup harlequin

3. Permanent Fix

Add to your shell profile (~/.bashrc, ~/.zshrc, or ~/.profile):

# Add this line to increase file descriptor limit
ulimit -n 4096

Then reload your shell:

source ~/.bashrc  # or ~/.zshrc

Alternative Values

  • Conservative: ulimit -n 2048
  • Standard: ulimit -n 4096
  • High: ulimit -n 8192

Verify Fix

# Check new limit
ulimit -n
 
# Should show your new value (e.g., 4096)

When This Happens

  • Homebrew operations with large packages
  • Git operations in repos with many files
  • Build processes that open many files
  • File archiving/extraction operations

Pro Tips

  • Start with 4096 - it handles most situations
  • Only increase if you still get errors
  • Some systems have hard limits that require admin changes
  • The limit resets when you close your terminal (unless made permanent)