Perhaps the final then should return a promise that either resolves to true for success, or rejects it with the error.