def is_recoverable_error(status_code: int) ->bool:
    """
    True if the passed status_code hints at a recoverable server error. I.e. The same request might
    be successful at a later point in time.
    """
    if status_code < 400:
        return False
    if status_code // 100 == 4:
        if status_code in [408, 444, 499]:
            return True
        else:
            return False
    elif status_code // 100 == 5:
        if status_code in [501, 505, 506, 507, 508, 510, 511]:
            return False
        else:
            return True
    else:
        raise ValueError(
            f'Not an Http status code indicating an error: {status_code}')
