You're making use of the deferred anti-pattern [0] on your own profile page [1].
[0] https://github.com/petkaantonov/bluebird/wiki/Promise-anti-p... [1] https://pocketsquare.io/alanfriedman
[0] https://github.com/petkaantonov/bluebird/wiki/Promise-anti-p... [1] https://pocketsquare.io/alanfriedman
Also, it's often cleaner to use something like Q.nfcall to turn a callback accepting function (like request in your example) itself into a promise that can be chained. (I just noticed that this is contrary to Q's own documentation which surprisingly is pro-deferred.)