I’ve just spent way to much time debugging a node program that was crashing because of a database call wrapped in ES6 promise. After looking all around in my code for an abusive try/catch silencing the error, I stumbled upon an article explaining error handling behavior with ES6 promises, that are just basically “swallowing” all errors thrown during their resolution. While arguable, this behavior is expected as per the specifications.
The following article describes this behavior quite well and provide a workaround: http://jamesknelson.com/are-es6-promises-swallowing-your-errors/
A (safer) promises wrapper
Meanwhile, I’ve put together a wrapper for ES6 Promise, that displays errors as they are raised. I published it on npm as safe-promise. Just use this as your promise lib, and you’ll get the errors back.
Check out the npm page: https://www.npmjs.com/package/safe-promise
I hope that sharing this will save you some time and headaches.