The argument to `handleError` is not lazy, so this function will always result in the above exception being thrown, `handleError` will never be invoked.  I think throwing the exception is the correct behaviour anyway, let the `Future.recover` method later invoke it.