errors in onFulfill are now caught and the returned promise is rejected.