defer errors to when future.value is called