dotnet/runtime · error · Exception
Didn't find any collections using %s
Error message
Didn't find any collections using %s
What it means
Raised by build_partitions in superpmi_diffs_setup.py when `urllib.request.urlopen(list_superpmi_container_uri)` throws (the Azure blob 'list' REST call failed). Without the collection listing, no partitions can be generated.
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 290d5ab72c)
Solutions
- curl/GET the list_superpmi_container_uri manually to see the HTTP status.
- Confirm the storage account/container names in the script are still correct.
- Check proxy/firewall allows egress to *.blob.core.windows.net.
- Retry — if it is a transient Azure 5xx, re-running usually succeeds.
Example fix
// before # urlopen() raises -> re-raised as [196] // after curl '<list_superpmi_container_uri>' # confirm 200, fix proxy/account, then rerun
Defensive patterns
Strategy: retry
Validate before calling
import urllib.request
try:
with urllib.request.urlopen(list_superpmi_container_uri, timeout=15) as r:
if r.status != 200: raise SystemExit('blob list returned non-200')
except Exception as e:
raise SystemExit(f'cannot reach collections blob listing: {e}') Type guard
def collections_listing_reachable(uri: str) -> bool:
import urllib.request
try:
with urllib.request.urlopen(uri, timeout=15) as r: return r.status == 200
except Exception: return False Try / catch
for attempt in range(3):
try:
build_partitions(...); break
except Exception as e:
if 'Didn\'t find any collections' in str(e) and attempt < 2:
time.sleep(5); continue
raise Prevention
- Whitelist *.blob.core.windows.net on proxies
- Confirm storage account/container names
- Add bounded retries for transient Azure 5xx
When it happens
Trigger: Network/DNS/proxy error hitting the Azure storage container, the container/account name changed, an HTTP error (404/403/5xx), or transient outage. Caught by bare `except Exception`.
Common situations: Air-gapped or proxy-blocked CI; wrong az_account_name ('clrjit2'); SAS/anonymous access disabled on the container; transient Azure blip.
Related errors
- No baseline JIT found
- {} not found
- No baseline JIT found
- Unable to find MinGit asset for arch '{arch}'. Available ass
- Please install `node-fetch` and `node-abort-controller` npm
AI-assisted analysis of dotnet/runtime@290d5ab72c (2026-08-06).
Data as JSON: /api/errors/09c5a34c24b0f14a.
Report an issue: GitHub.