I think that should change, or there should be a separate exception to this. If `onComplete` fails there needs to be a way to handle it, and it should preferably go via `onError`. 

If `onError` fails then there is no other choice but to throw.