dotnet/runtime · error · RuntimeError
No baseline JIT found
Error message
No baseline JIT found
What it means
Thrown by process_git_hash_arg() after iterating through all JIT-change commit hashes (up to 20) and failing to find any matching JIT build in the Azure Storage rolling build store. For each hash, the script calls get_jit_urls() to probe Azure; if none return more than one URL, no baseline JIT exists for any of the recent JIT-change commits.
Source
Thrown at src/coreclr/scripts/jitrollingbuild.py:254
coreclr_args.git_hash = git_hash
if return_first_hash:
# Just use the first one
break
urls = get_jit_urls(coreclr_args)
if len(urls) > 1:
if hashnum > 1:
logging.warning("Warning: the baseline found is not built with the first git hash with JIT code changes; there may be extraneous diffs")
return
# We didn't find a baseline; keep looking
hashnum += 1
# We ran out of hashes of JIT changes, and didn't find a baseline. Give up.
logging.error("Error: no baseline JIT found")
raise RuntimeError("No baseline JIT found")
def list_az_jits(filter_func=lambda unused: True, prefix_string = None):
""" List the JITs in Azure Storage using REST api
Args:
filter_func (lambda: string -> bool): filter to apply to the list. The filter takes a URL and returns True if this URL is acceptable.
prefix_string: Optional. Specifies a string prefix for the Azure Storage query.
Returns:
urls (list): set of URLs in Azure Storage that match the filter.
Notes:
This method does not require installing the Azure Storage python package.
"""
# This URI will return *all* the blobs, for all git_hash/OS/architecture/build_type combinations.
# pass "prefix=foo/bar/..." to only show a subset. Or, we can filter later using string search.View on GitHub (pinned to 290d5ab72c)
Solutions
- Run 'jitrollingbuild.py list --all' or 'list --global_all' to see what JIT builds actually exist in Azure Storage.
- Verify that -arch, -build_type, and -host_os match an available combination in the store.
- Pass -git_hash explicitly with a commit hash known to have a rolling build (check the list output).
- Check that the Azure Storage endpoint (clrjit2.blob.core.windows.net) is reachable and not blocked by a firewall/proxy.
Example fix
# before: auto-detection can't find a matching build python jitrollingbuild.py download -arch arm64 # after: check what's available, then use a specific hash python jitrollingbuild.py list --global_all python jitrollingbuild.py download -git_hash <known_good_hash> -arch arm64
Defensive patterns
Strategy: validation
Validate before calling
# Check Azure Storage for available builds before attempting download
from jitrollingbuild import get_jit_urls
# After setting up coreclr_args:
urls = get_jit_urls(coreclr_args)
if len(urls) == 0:
print('No JIT found for this hash/OS/arch/build_type. Check with: jitrollingbuild.py list --global_all') Type guard
def has_available_baseline_jit(coreclr_args) -> bool:
from jitrollingbuild import get_jit_urls
urls = get_jit_urls(coreclr_args)
return urls is not None and len(urls) > 1 Try / catch
try:
process_git_hash_arg(coreclr_args)
except RuntimeError as e:
if 'No baseline JIT found' in str(e):
logging.error('No matching JIT in rolling build store. Available builds:')
logging.error('Run: jitrollingbuild.py list --global_all')
sys.exit(1)
raise Prevention
- Run 'jitrollingbuild.py list --global_all' to see all available JIT builds before download.
- Verify that your OS/arch/build_type combination is produced by the rolling build CI pipeline.
- Keep the Azure Storage endpoint reachable (check firewall/proxy settings).
When it happens
Trigger: The loop at lines 229-249 iterates change_list_hashes. For each hash, it calls get_jit_urls(coreclr_args) which queries Azure Storage via list_az_jits(). If len(urls) <= 1 for every hash (meaning no JIT binary was found for that OS/arch/build_type combination), the loop exhausts and line 254 raises.
Common situations: The rolling build pipeline hasn't produced a JIT for the requested OS/architecture/build_type combination (e.g., requesting arm64 but only x64 builds exist). The Azure Storage container has no builds for the current branch's JIT-change commits. The user is on a fork or branch whose commits were never built by the rolling build CI. Network issues caused list_az_jits to return incomplete results.
Related errors
- No JIT changes found starting with baseline hash
- Couldn't determine current git hash
- Couldn't determine newest 'main' git hash
- Couldn't determine baseline git hash
- Couldn't determine list of JIT changes starting with baselin
AI-assisted analysis of dotnet/runtime@290d5ab72c (2026-08-06).
Data as JSON: /api/errors/f09e803cc55f2765.
Report an issue: GitHub.