React-native: MacOS Sierra Error with EMFILE upon NPM start

Created on 21 Sep 2016  ยท  30Comments  ยท  Source: facebook/react-native

just upgraded to Sierra and am running into a problem when i enter NPM start

For background, I am on react-native 0.26 and unfortunately cannot upgrade at the moment. I also do not have brew

My logs show the following when I try NPM start:

2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 12:35 node[1515] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)

 ERROR  Error watching file for changes: EMFILE
{"code":"EMFILE","errno":"EMFILE","syscall":"Error watching file for changes:","filename":null}
Error: Error watching file for changes: EMFILE
    at exports._errnoException (util.js:953:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1400:11)
Locked

Most helpful comment

I'd like to add that I've been running the packager without watchman for 3-4 months because React Native's Node packager doesn't depend on watchman. However, after upgrading to macOS Sierra the Node packager started failing with the above errors. Installing the current version of watchman (brew install watchman) did solve the issue for me, but something obviously regressed and it would be good to understand what that is.

All 30 comments

I have the same error.
I just upgraded to macOS Sierra too

โžœ  example npm start  

> [email protected] start /Users/alex/Developer/example
> node node_modules/react-native/local-cli/cli.js start

Scanning 581 folders for symlinks in /Users/alex/Developer/example/node_modules (6ms)
 โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” 
 โ”‚  Running packager on port 8081.                                            โ”‚ 
 โ”‚                                                                            โ”‚ 
 โ”‚  Keep this packager running while developing on any JS projects. Feel      โ”‚ 
 โ”‚  free to close this tab and run your own packager instance if you          โ”‚ 
 โ”‚  prefer.                                                                   โ”‚ 
 โ”‚                                                                            โ”‚ 
 โ”‚  https://github.com/facebook/react-native                                  โ”‚ 
 โ”‚                                                                            โ”‚ 
 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ 
Looking for JS files in
   /Users/alex/Developer/example 

[1:56:23 PM] <START> Building Dependency Graph
[1:56:23 PM] <START> Crawling File System
[Hot Module Replacement] Server listening on /hot

React packager ready.

2016-09-21 13:56 node[15435] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 13:56 node[15435] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 13:56 node[15435] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2016-09-21 13:56 node[15435] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
 ERROR  Error watching file for changes: EMFILE
{"code":"EMFILE","errno":"EMFILE","syscall":"Error watching file for changes:","filename":null}
Error: Error watching file for changes: EMFILE
    at exports._errnoException (util.js:1026:11)
    at FSEvent.FSWatcher._handle.onchange (fs.js:1406:11)

See http://facebook.github.io/react-native/docs/troubleshooting.html
for common problems and solutions.

npm ERR! Darwin 16.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.4.0
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `node node_modules/react-native/local-cli/cli.js start`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script 'node node_modules/react-native/local-cli/cli.js start'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the example package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node node_modules/react-native/local-cli/cli.js start
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs example
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls example
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/alex/Developer/example/npm-debug.log

Have you checked the solutions in https://github.com/facebook/react-native/issues/9309?

@Etheryte yes checked it out. Seems to only be a solution for those with brew/watchman installed.

I was checking watchman issues and found out this one: https://github.com/facebook/watchman/issues/358

When running watchman watch-list I got some permissions error.

chmod 0700 /usr/local/var/run/watchman/<USER>-state worked for me.

The problem can be solved by reinstalling react-native-cli:

npm uninstall -g react-native-cli
npm install -g react-native-cli

@AlexisLeon that didn't work for me.

This answer(facebook/react-native#9309) work to me. I create and eidt new sysctl.conf and install watchman through homebrew.

1. increase max file limt

# check open file limit
sysctl kern.maxfiles

# edit sysctl
sudo vim /etc/sysctl.conf

# add these two lines
kern.maxfiles=10485760
kern.maxfilesperproc=1048576

# reboot
sudo reboot

# check new file limit
sysctl kern.maxfiles

2. upgrade to watchman 4.6

# clone repo
git clone https://github.com/facebook/watchman.git

# change to master branch
git checkout -b v4.6.0 v4.6.0

# run compiler
./autogen.sh
./configure --enable-lenient --without-pcre --with-python
make
sudo make install

# check watchman version
watchman -v

# result should be 4.6.0

I'd like to add that I've been running the packager without watchman for 3-4 months because React Native's Node packager doesn't depend on watchman. However, after upgrading to macOS Sierra the Node packager started failing with the above errors. Installing the current version of watchman (brew install watchman) did solve the issue for me, but something obviously regressed and it would be good to understand what that is.

@Luavis still didn't work, when I execute ./autogen.sh

./autogen.sh: line 9: aclocal: command not found
./autogen.sh: line 10: autoheader: command not found
./autogen.sh: line 11: automake: command not found
./autogen.sh: line 12: autoconf: command not found

@bbb324 Could you try install watchman by homebrew

Thanks to @Luavis , I followed his steps, still resulted in failure.
In my case, need another operation that mentioned below:
https://github.com/facebook/react-native/issues/910#issuecomment-94181845

I reinstall node, watchman, npm and etc, finally everything goes fine!
I think new updates about supporting mac OS Sierra were included in the package.
brew install node
brew install watchman
brew link automake pcre
npm install -g react-native-cli
export ANDROID_HOME=~/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}
react-native run-android

brew install watchman solved it for me but had to update xcode to 8.1 also in order to install watchman.

@gnestor needed to install watchman - thanks!

@Luavis holy cow after 2-3 hours of searching, setting kern.maxfiles! Never would have got it. Thank you!

Just FYI, I did not change the kern maxfiles, I only installed watchman.

$ sysctl kern.maxfiles
kern.maxfiles: 12288
$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240

perhaps there are two separate issues here - the project that I am building is pretty small and simple at the moment.

If you are still getting this error and are using tmux on MacOS Sierra, try open a new terminal without tmux and run 'watchman version'. After doing that, it was fixed for me within tmux.

Installing watchman worked for me.

Same, installed watchman fixed the issue

This just happened to me after transferring my environment from an old MacBook Pro to a brand new one.

Using Watchman 4.7.0 and brew - problem seems to be a permissions issue with the watchman state directory, so running:

chmod 0700 /usr/local/var/run/watchman/<YOUR USERNAME HERE>-state

did the job.

@Luavis i install watchman by homebrew thanks!!

Clearing the builds in android->app->build folder and hitting react-native run-android worked for me.

Hello. I have tried everything listed above, but I continue to get this error: node[10626] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)

I just upgraded to High Sierra. I had deleted XCode and Android Studio, and then reinstalled both.
I've installed watchman 4.9.0 (and also uninstalled) - no help.
I've increased the max file limit - no help.
I've reinstalled react-native and npm - no help.

Any other ideas what I can do.

Thank you,
John

This is a correct way of increasing limit on max files for Mac OS X Sierra and above https://superuser.com/a/1171028, works for me on a huge repo w/o any issues (and doesn't in case of default limits)

Actually, what if react-native/nuclide will provide instructions on how to raise limit instead of throwing an error?

@johnwangel this will help you to fix that error https://facebook.github.io/watchman/docs/install.html

Thank you @pranky. I tried reinstalling watchman and just about everything else I could think of, to no avail. The thing that worked was to create a new project and port the code into that project - so I guess there was something cached in the old project that I wasn't able to find.

brew install watchman worked for me.

Increasing file limits, installing watchman and reinstalling react-native-cli did not fix this for me. Why is this issue closed?

Was this page helpful?
0 / 5 - 0 ratings