keep the promise chain unbroken