7

I have quite a strange error while runnning react-native start:

 ERROR  watch /home/augustin/Workspace/MyProject ENOSPC
{"code":"ENOSPC","errno":"ENOSPC","syscall":"watch /home/augustin/Workspace/MyProject","filename":"/home/augustin/Workspace/MyProject"}
Error: watch /home/augustin/Workspace/MyProject ENOSPC
    at exports._errnoException (util.js:874:11)
    at FSWatcher.start (fs.js:1234:19)
    at Object.fs.watch (fs.js:1262:11)
    at NodeWatcher.watchdir (/home/augustin/Workspace/MyProject/node_modules/react-native/node_modules/sane/src/node_watcher.js:144:20)
    at new NodeWatcher (/home/augustin/Workspace/MyProject/node_modules/react-native/node_modules/sane/src/node_watcher.js:45:8)
    at /home/augustin/Workspace/MyProject/node_modules/react-native/packager/react-packager/src/FileWatcher/index.js:95:21
    at tryCallOne (/home/augustin/Workspace/MyProject/node_modules/react-native/node_modules/promise/lib/core.js:37:12)
    at /home/augustin/Workspace/MyProject/node_modules/react-native/node_modules/promise/lib/core.js:103:15
    at flush (/home/augustin/Workspace/MyProject/node_modules/react-native/node_modules/promise/node_modules/asap/raw.js:50:29)
    at doNTCallback0 (node.js:419:9)

See http://facebook.github.io/react-native/docs/troubleshooting.html
for common problems and solutions.
/home/augustin/Workspace/MyProject/node_modules/react-native/private-cli/src/server/server.js:91
    if (error.code === 'EADDRINUSE') {
             ^

TypeError: Cannot read property 'code' of undefined
    at process.<anonymous> (/home/augustin/Workspace/MyProject/node_modules/react-native/private-cli/src/server/server.js:105:14)
    at emitOne (events.js:77:13)
    at process.emit (events.js:169:7)
    at process._fatalException (node.js:223:26)

If I look at /home/augustin/Workspace/MyProject/node_modules/react-native/private-cli/src/server/server.js, apparently, err is undefined on:

  process.on('uncaughtException', error => {
    if (error.code === 'EADDRINUSE') {
      console.log(
        chalk.bgRed.bold(' ERROR '),
        chalk.red('Packager can\'t listen on port', chalk.bold(args.port))
      );
    ...
  }

How can this be? Using:

▶ node --version
v4.2.2
Augustin Riedinger
  • 20,909
  • 29
  • 133
  • 206

3 Answers3

7

I fixed the issue by installing watchman.

Quoting this page:

We recommend installing watchman, otherwise you might hit a node file watching bug.

It is no recommendation, it is a dependency!

Augustin Riedinger
  • 20,909
  • 29
  • 133
  • 206
  • I tried to fix (from [this ppa](https://launchpad.net/~mwhiteley/+archive/ubuntu/watchman-daily/+packages)), but it complained that fs.inotify.max_user_watches was too low. Bumping that up made it work, but that seems to be the same problem @yaronius describes and it's related to ENOSPC (running out of space to make notifies, I guess). – idbrii Aug 02 '16 at 05:59
7

This error is shown because your watchman has watched too many files and crossed its limit. So there are two ways to solve it either use the watchman and cancel its limit or without using watchman, you can fix it by increasing the number of inotify watches using the below command on your terminal.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
iPragmatech
  • 419
  • 5
  • 5
1

I know this is an old issue, but real solution for this problem in my case was the one described in this Stackoverflow question As I was using docker to build an Android app, it turned out that unused space was running out on my drive. React Native uses node-js underneath, but it's not so obvious for the uninitiated.

Community
  • 1
  • 1
Yaronius
  • 784
  • 3
  • 17
  • 34