use rejected promise for callback.fail