Use finally instead of Q.done(f,f) to make sure that the internal done is always executed and to let Q.done() to handle errors.
Test that the error from callback function bubbles up.