dotnet/runtime · error · Exception

Didn't find any collections using

Error message

Didn't find any collections using %s

What it means

Raised by superpmi_diffs_setup.py at src/coreclr/scripts/superpmi_diffs_setup.py:248 when the HTTP request to list blobs under the JIT-EE version prefix in Azure blob storage (clrjit2/superpmi/collections/<jit_ee_version>/) throws an exception. The baseline MCH collections for this JIT-EE version could not be retrieved.

Solutions

  1. Retry — the failure is caught from urlopen and may be transient.
  2. Verify the JIT-EE version (printed at line 234) actually has collections uploaded to the superpmi container.
  3. Confirm the agent network/proxy can reach https://clrjit2.blob.core.windows.net/.
  4. If the JIT-EE version looks wrong, rebuild mcs so -printJITEEVersion returns the correct string.
Defensive patterns

Strategy: retry

Validate before calling

import urllib.request
try:
    with urllib.request.urlopen(list_superpmi_container_uri, timeout=30) as r:
        contents = r.read().decode('utf-8')
    if not contents.strip():
        raise SystemExit(f'No collections found for prefix {prefix}')
except Exception:
    raise SystemExit(f'Could not reach {list_superpmi_container_uri} — check network/upload baseline')

Try / catch

last_err = None
for attempt in range(3):
    try:
        contents = urllib.request.urlopen(list_superpmi_container_uri, timeout=30).read().decode('utf-8')
        break
    except Exception as e:
        last_err = e
        time.sleep(5)
else:
    raise RuntimeError(f"Didn't find any collections using {list_superpmi_container_uri}") from last_err

Prevention

When it happens

Trigger: Network/proxy failure reaching clrjit2.blob.core.windows.net; the JIT-EE version has no uploaded baseline collections; DNS or TLS error on the agent.

Common situations: A new JIT-EE version with no baseline uploaded yet; agent behind a firewall blocking Azure storage; transient network outage; wrong JIT-EE version derived from a broken mcs.

Related errors


AI-assisted analysis of dotnet/runtime@60108ba66e (2026-08-10). Data as JSON: /api/errors/09c5a34c24b0f14a. Report an issue: GitHub.

Appendix: source

Thrown at src/coreclr/scripts/superpmi_diffs_setup.py:248

        jit_ee_version = jit_ee_version.lower()
    else:
        raise Exception("Could not determine JIT-EE version")

    print("JIT-EE version determined to be {}".format(jit_ee_version))

    az_account_name = "clrjit2"
    az_superpmi_container_name = "superpmi"
    az_blob_storage_account_uri = "https://" + az_account_name + ".blob.core.windows.net/"
    az_blob_storage_superpmi_container_uri = az_blob_storage_account_uri + az_superpmi_container_name
    az_collections_root_folder = "collections"
    prefix = az_collections_root_folder + "/" + jit_ee_version
    prefix_urlencoded = urllib.parse.quote(prefix)
    list_superpmi_container_uri = az_blob_storage_superpmi_container_uri + "?restype=container&comp=list&prefix=" + prefix_urlencoded + "/"

    try:
        contents = urllib.request.urlopen(list_superpmi_container_uri).read().decode('utf-8')
    except Exception as exception:
        raise Exception("Didn't find any collections using %s", list_superpmi_container_uri)

    elem = ET.fromstring(contents)

    # Each tuple is (target_os, target_arch, blob_arch) where blob_arch is the architecture
    # directory used in blob storage. For wasm collections the MCH files are uploaded under
    # the host architecture directory (e.g. <jit_ee_version>/browser/x64/) because the wasm
    # mch_arch override in superpmi.py replaces mch_arch with the host arch. Recording the
    # blob_arch separately lets us discover those collections while still recording the real
    # target_arch ("wasm") in the per-partition JSON so the diffs script picks the wasm jit
    # and passes --altjit.
    if not target_windows and not do_asmdiffs:
        targets = [("linux", "x64", "x64")]
    elif host_bitness == 64:
        targets = [
            ("windows", "x64", "x64"),
            ("windows", "arm64", "arm64"),
            ("linux", "x64", "x64"),
            ("linux", "arm64", "arm64"),

View on GitHub (pinned to 60108ba66e)