conditional retrying future