Broccoli giving 'ENOTEMPTY: directory not empty'

I recently started getting this issue, and I’m not sure where to even begin to debug this. Basically, whenever I delete a file or directory while ember serve is still running, I get Broccoli errors.

For example, if I have a global-message-service component, and I run:

% rm -r app/pods/global-message-service

I then see this:

file deleted pods/global-message-service
file deleted pods/global-message-service/service.js
The Broccoli Plugin: [Funnel: Funnel: Filtered App] failed with:
Error: ENOTEMPTY: directory not empty, rmdir '/Users/denchen/git/my-app/tmp/funnel-output_path-ZFVAFCmr.tmp/pods/global-message-service/'
  at Error (native)
  at Object.fs.rmdirSync (fs.js:758:18)
  at Funnel.applyPatch [as _applyPatch] (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:346:10)
  at Funnel.<anonymous> (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:318:10)
  at Array.forEach (native)
  at Funnel.processFilters (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:317:11)
  at Funnel.build (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:233:10)
  at /Users/denchen/git/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/node_modules/broccoli-plugin/read_compat.js:61:34
  at tryCatch (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:538:12)
  at invokeCallback (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:553:13)
  at publish (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:521:7)
  at flush (/Users/denchen/git/my-app/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2373:5)
  at nextTickCallbackWith0Args (node.js:420:9)
  at process._tickCallback (node.js:349:13)

Deleting the file first instead of the directory also triggers the error. Deleting /tmp & /dist before I start the server seems to have no effect.

I’m currently on Ember 2.7.0. I can provide a full list of npm / bower versions if it’ll help. I did do a npm install recently, but I’m not sure if any versions of any of my dependencies have changed since the last install.

Just FYI, it seems to be a regression in fs-tree-diff. See:

https://github.com/broccolijs/broccoli-funnel/issues/86#issuecomment-264047054 https://github.com/stefanpenner/fs-tree-diff/issues/51