{"record":{"id":"09c5a34c24b0f14a","repo":"dotnet/runtime","slug":"didn-t-find-any-collections-using-s","errorCode":null,"errorMessage":"Didn't find any collections using %s","messagePattern":"Didn't find any collections using (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"src/coreclr/scripts/superpmi_diffs_setup.py","lineNumber":248,"sourceCode":"        jit_ee_version = jit_ee_version.lower()\n    else:\n        raise Exception(\"Could not determine JIT-EE version\")\n\n    print(\"JIT-EE version determined to be {}\".format(jit_ee_version))\n\n    az_account_name = \"clrjit2\"\n    az_superpmi_container_name = \"superpmi\"\n    az_blob_storage_account_uri = \"https://\" + az_account_name + \".blob.core.windows.net/\"\n    az_blob_storage_superpmi_container_uri = az_blob_storage_account_uri + az_superpmi_container_name\n    az_collections_root_folder = \"collections\"\n    prefix = az_collections_root_folder + \"/\" + jit_ee_version\n    prefix_urlencoded = urllib.parse.quote(prefix)\n    list_superpmi_container_uri = az_blob_storage_superpmi_container_uri + \"?restype=container&comp=list&prefix=\" + prefix_urlencoded + \"/\"\n\n    try:\n        contents = urllib.request.urlopen(list_superpmi_container_uri).read().decode('utf-8')\n    except Exception as exception:\n        raise Exception(\"Didn't find any collections using %s\", list_superpmi_container_uri)\n\n    elem = ET.fromstring(contents)\n\n    # Each tuple is (target_os, target_arch, blob_arch) where blob_arch is the architecture\n    # directory used in blob storage. For wasm collections the MCH files are uploaded under\n    # the host architecture directory (e.g. <jit_ee_version>/browser/x64/) because the wasm\n    # mch_arch override in superpmi.py replaces mch_arch with the host arch. Recording the\n    # blob_arch separately lets us discover those collections while still recording the real\n    # target_arch (\"wasm\") in the per-partition JSON so the diffs script picks the wasm jit\n    # and passes --altjit.\n    if not target_windows and not do_asmdiffs:\n        targets = [(\"linux\", \"x64\", \"x64\")]\n    elif host_bitness == 64:\n        targets = [\n            (\"windows\", \"x64\", \"x64\"),\n            (\"windows\", \"arm64\", \"arm64\"),\n            (\"linux\", \"x64\", \"x64\"),\n            (\"linux\", \"arm64\", \"arm64\"),","sourceCodeStart":230,"sourceCodeEnd":266,"githubUrl":"https://github.com/dotnet/runtime/blob/60108ba66eb7d1d12f595480091b4ad80a24b172/src/coreclr/scripts/superpmi_diffs_setup.py#L230-L266","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","solutions":["Retry — the failure is caught from urlopen and may be transient.","Verify the JIT-EE version (printed at line 234) actually has collections uploaded to the superpmi container.","Confirm the agent network/proxy can reach https://clrjit2.blob.core.windows.net/.","If the JIT-EE version looks wrong, rebuild mcs so -printJITEEVersion returns the correct string."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"import urllib.request\ntry:\n    with urllib.request.urlopen(list_superpmi_container_uri, timeout=30) as r:\n        contents = r.read().decode('utf-8')\n    if not contents.strip():\n        raise SystemExit(f'No collections found for prefix {prefix}')\nexcept Exception:\n    raise SystemExit(f'Could not reach {list_superpmi_container_uri} — check network/upload baseline')","typeGuard":null,"tryCatchPattern":"last_err = None\nfor attempt in range(3):\n    try:\n        contents = urllib.request.urlopen(list_superpmi_container_uri, timeout=30).read().decode('utf-8')\n        break\n    except Exception as e:\n        last_err = e\n        time.sleep(5)\nelse:\n    raise RuntimeError(f\"Didn't find any collections using {list_superpmi_container_uri}\") from last_err","preventionTips":["Upload baseline MCH collections for the JIT-EE version before running diffs.","Ensure agent network egress to Azure storage is allowed."],"tags":["dotnet","coreclr","superpmi","azure-storage","network","pipeline"],"backgroundTag":null,"analyzedSha":"60108ba66eb7d1d12f595480091b4ad80a24b172","analyzedAt":"2026-08-10T18:54:11.478Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}