strengthen reject() contract to always require an error

Change-Id: I3f3793396525d3503ee4babeb32f011ce4bbdc64