When a process exceeds fs.inotify.max_user_watches, inotify_add_watch returns ENOSPC and the library reports 'no space left on device' or 'ENOSPC: System limit for number of file watchers reached'. Disk usage is fine; the limit is per user and counts every watched directory. Bundlers, test runners in watch mode, editors indexing a large tree, and container runtimes all consume watches, and they share the same per-user budget.
The historical default of 8192 is far too low for a modern JavaScript project; many distributions now ship a higher value, so read the current one rather than assuming. Check with 'cat /proc/sys/fs/inotify/max_user_watches'.
Raise it temporarily with 'sysctl fs.inotify.max_user_watches=524288' and permanently by writing the same line into a file under /etc/sysctl.d then running 'sysctl --system'. There is a second, separate limit, fs.inotify.max_user_instances, which caps the number of inotify file descriptors per user and produces the same ENOSPC when exhausted; raise both if the first change does not help. Each watch consumes a small amount of unswappable kernel memory, so the limit exists for a reason.