{"record":{"id":"f09e803cc55f2765","repo":"dotnet/runtime","slug":"no-baseline-jit-found","errorCode":null,"errorMessage":"No baseline JIT found","messagePattern":"No baseline JIT found","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/coreclr/scripts/jitrollingbuild.py","lineNumber":254,"sourceCode":"            coreclr_args.git_hash = git_hash\n\n            if return_first_hash:\n                # Just use the first one\n                break\n\n            urls = get_jit_urls(coreclr_args)\n            if len(urls) > 1:\n                if hashnum > 1:\n                    logging.warning(\"Warning: the baseline found is not built with the first git hash with JIT code changes; there may be extraneous diffs\")\n                return\n\n            # We didn't find a baseline; keep looking\n            hashnum += 1\n\n        # We ran out of hashes of JIT changes, and didn't find a baseline. Give up.\n        logging.error(\"Error: no baseline JIT found\")\n\n    raise RuntimeError(\"No baseline JIT found\")\n\n\ndef list_az_jits(filter_func=lambda unused: True, prefix_string = None):\n    \"\"\" List the JITs in Azure Storage using REST api\n\n    Args:\n        filter_func (lambda: string -> bool): filter to apply to the list. The filter takes a URL and returns True if this URL is acceptable.\n        prefix_string: Optional. Specifies a string prefix for the Azure Storage query.\n\n    Returns:\n        urls (list): set of URLs in Azure Storage that match the filter.\n\n    Notes:\n        This method does not require installing the Azure Storage python package.\n    \"\"\"\n\n    # This URI will return *all* the blobs, for all git_hash/OS/architecture/build_type combinations.\n    # pass \"prefix=foo/bar/...\" to only show a subset. Or, we can filter later using string search.","sourceCodeStart":236,"sourceCodeEnd":272,"githubUrl":"https://github.com/dotnet/runtime/blob/290d5ab72cc1102813fbc0406fb186ceadabc340/src/coreclr/scripts/jitrollingbuild.py#L236-L272","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"# before: auto-detection can't find a matching build\npython jitrollingbuild.py download -arch arm64\n\n# after: check what's available, then use a specific hash\npython jitrollingbuild.py list --global_all\npython jitrollingbuild.py download -git_hash <known_good_hash> -arch arm64","handlingStrategy":"validation","validationCode":"# Check Azure Storage for available builds before attempting download\nfrom jitrollingbuild import get_jit_urls\n# After setting up coreclr_args:\nurls = get_jit_urls(coreclr_args)\nif len(urls) == 0:\n    print('No JIT found for this hash/OS/arch/build_type. Check with: jitrollingbuild.py list --global_all')","typeGuard":"def has_available_baseline_jit(coreclr_args) -> bool:\n    from jitrollingbuild import get_jit_urls\n    urls = get_jit_urls(coreclr_args)\n    return urls is not None and len(urls) > 1","tryCatchPattern":"try:\n    process_git_hash_arg(coreclr_args)\nexcept RuntimeError as e:\n    if 'No baseline JIT found' in str(e):\n        logging.error('No matching JIT in rolling build store. Available builds:')\n        logging.error('Run: jitrollingbuild.py list --global_all')\n        sys.exit(1)\n    raise","preventionTips":["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)."],"tags":["azure-storage","jitrollingbuild","infrastructure","network","baseline"],"analyzedSha":"290d5ab72cc1102813fbc0406fb186ceadabc340","analyzedAt":"2026-08-06T19:57:01.276Z","schemaVersion":2},"datasetVersion":"2026-08-06T23:17:07.152Z"}