Change `fail` to `always` and remove `result.resolve()` in the `done` callback