published: 20th of November 2020
I have come across a file watchers error a couple of times now with new installs of 11ty and I am documenting the fix in this post for future me.
When starting a local 11ty dev server with the command:
npx @11ty/eleventy --serve
You get the following error:
Unhandled rejection in promise ([object Promise]): (more in DEBUG output)
^C> ENOSPC: System limit for number of file watchers reached, watch 'network/vendors/juniper/trace-options.njk'
`Error` was thrown:
Error: ENOSPC: System limit for number of file watchers reached, watch 'network/vendors/juniper/trace-options.njk'
at FSWatcher. (node:internal/fs/watchers:218:26)
at Object.watch (node:fs:1550:34)
at createFsWatchInstance (/home/bradmin/code/js/codingpackets.com-11ty/node_modules/chokidar/lib/nodefs-handler.js:119:15)
at setFsWatchListener (/home/bradmin/code/js/codingpackets.com-11ty/node_modules/chokidar/lib/nodefs-handler.js:166:15)
at NodeFsHandler._watchWithNodeFs (/home/bradmin/code/js/codingpackets.com-11ty/node_modules/chokidar/lib/nodefs-handler.js:331:14)
at NodeFsHandler._handleFile (/home/bradmin/code/js/codingpackets.com-11ty/node_modules/chokidar/lib/nodefs-handler.js:395:23)
at NodeFsHandler._addToNodeFs (/home/bradmin/code/js/codingpackets.com-11ty/node_modules/chokidar/lib/nodefs-handler.js:628:21)
Unhandled rejection in promise ([object Promise]): (more in DEBUG output)
Some quick duck hunting lead me to a github issue for the gatsby project that looked very similar to my issue.
The proposed solution involves upping the max_user_watches setting in the /etc/sysctl.conf file.
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
If you are interested in the gory details then there is a nice and helpful article that explains the issue in detail here.
Long story short. I applied the fix and it works!!! I can now serve my static site without errors.
https://github.com/gatsbyjs/gatsby/issues/11406
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details