return this promise so that ``.catch()`` handles errors