Yeah I was looking into how these promises work last night on behalf of Bhavesh/Rajmeet. You're right except promise.response is the promise, not promise.response.promise.

promise is a promise, but it also has another promise stored in response. promise.fulfilled should always return the response data (response.data) while promise.response.fulfilled should always return the whole response. So yeah you do reject both on failure.