asyncEffect and asyncInterrupt .... looks like the returned effect from the registration function is allowed to error in the former case, not in the latter case? at a guess, the returned effect in the latter case is actually the cancellation effect, whereas the former case the returned effect should be always run.