def METHOD_NAME(registry_base_url=None):
    url = _get_url("index", registry_base_url)
    fire_event(RegistryIndexProgressGETRequest(url=url))
    # all exceptions from requests get caught in the retry logic so no need to wrap this here
    resp = requests.get(url, timeout=30)
    fire_event(RegistryIndexProgressGETResponse(url=url, resp_code=resp.status_code))
    resp.raise_for_status()
    # The response should be a list.  Anything else is unexpected, raise an error.
    # Raising this error will cause this function to retry and hopefully get a valid response.
    response = resp.json()
    if not isinstance(response, list):  # This will also catch Nonetype
        error_msg = (
            f"Request error: The response type of {type(response)} is not valid: {resp.text}"
        )
        raise requests.exceptions.ContentDecodingError(error_msg, response=resp)
    return response