title: How to debug "Error: Promise rejected with no or falsy reason" in Mocha tests?
body: <p>I have a test failing in Mocha with this error.</p>
  
  <p>I have put <code>catch</code> statements at the end of every promise's chain that throw any error they are passed but they are never called.</p>
  
  <p>And yet the test keeps failing with the following error:</p>
  
  <pre><code>Error: Promise rejected with no or falsy reason
    at tryCatcher (node_modules/bluebird/js/main/util.js:26:23)
    at Promise._settlePromiseFromHandler (node_modules/bluebird/js/main/promise.js:507:31)
    at Promise._settlePromiseAt (node_modules/bluebird/js/main/promise.js:581:18)
    at Promise._settlePromises (node_modules/bluebird/js/main/promise.js:697:14)
    at Async._drainQueue (node_modules/bluebird/js/main/async.js:123:16)
    at Async._drainQueues (node_modules/bluebird/js/main/async.js:133:10)
    at Immediate.Async.drainQueues [as _onImmediate] (node_modules/bluebird/js/main/async.js:15:14)
  </code></pre>
  
  <p>How do I find out what the problem is exactly, which promise gets rejected and get a more meaningful trace?</p>