{"record":{"id":"0a26ec1bcc2cf8b8","repo":"dotnet/runtime","slug":"missing-azure-storage-or-identity-packages","errorCode":null,"errorMessage":"Missing azure storage or identity packages.","messagePattern":"Missing azure storage or identity packages\\.","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/coreclr/scripts/jitrollingbuild.py","lineNumber":467,"sourceCode":"                logging.warning(\"Couldn't find any JIT changes! Just using the argument git_hash\")\n            else:\n                jit_git_hash = change_list_hashes[0]\n                logging.info(\"Using git_hash {}\".format(jit_git_hash))\n\n    logging.info(\"Uploading:\")\n    for item in files:\n        logging.info(\"  {}\".format(item))\n\n    try:\n        from azure.storage.blob import BlobServiceClient\n        from azure.identity import AzureCliCredential\n\n    except:\n        logging.warning(\"Please install:\")\n        logging.warning(\"  pip install azure-storage-blob\")\n        logging.warning(\"  pip install azure-identiy\")\n        logging.warning(\"See also https://learn.microsoft.com/azure/storage/blobs/storage-quickstart-blobs-python\")\n        raise RuntimeError(\"Missing azure storage or identity packages.\")\n\n    default_credential = AzureCliCredential()\n\n    blob_service_client = BlobServiceClient(account_url=az_blob_storage_account_uri, credential=default_credential)\n    blob_folder_name = \"{}/{}/{}/{}/{}\".format(az_builds_root_folder, jit_git_hash, coreclr_args.host_os, coreclr_args.arch, coreclr_args.build_type)\n\n    total_bytes_uploaded = 0\n\n    # Should we compress the JIT on upload? It would save space, but it makes it slightly more complicated to use\n    # because you can't just \"wget\" or otherwise download the file and use it immediately -- you need to unzip first.\n    # So for now, don't compress it.\n    compress_jit = False\n\n    with TempDir() as temp_location:\n        for file in files:\n            if compress_jit:\n                # Zip compress the file we will upload\n                zip_name = os.path.basename(file) + \".zip\"","sourceCodeStart":449,"sourceCodeEnd":485,"githubUrl":"https://github.com/dotnet/runtime/blob/60108ba66eb7d1d12f595480091b4ad80a24b172/src/coreclr/scripts/jitrollingbuild.py#L449-L485","documentation":"Raised by upload_command in jitrollingbuild.py inside a bare try/except wrapping `from azure.storage.blob import ...` and `from azure.identity import AzureCliCredential`. If either import fails, the except block logs install hints and raises this error. Upload requires the Azure SDK packages to authenticate and write blobs.","triggerScenarios":"Running `jitrollingbuild.py upload` in a Python environment that lacks azure-storage-blob or azure-identity, or where they are installed in a different interpreter than the one running the script.","commonSituations":"Fresh checkout without pip-installing dependencies; using the system python3 while packages were pip-installed for a venv; CI image missing the Azure SDK.","solutions":["Install both packages: `pip install azure-storage-blob azure-identity`.","Confirm you are installing into the same interpreter that runs the script (`python -m pip install ...` or `py -3 -m pip install ...` on Windows).","Activate the correct virtualenv before re-running upload."],"exampleFix":"// before\npython jitrollingbuild.py upload -git_hash abc   # 'Missing azure storage or identity packages.'\n// after\npython -m pip install azure-storage-blob azure-identity\npython jitrollingbuild.py upload -git_hash abc","handlingStrategy":"validation","validationCode":"import importlib.util\nfor mod in (\"azure.storage.blob\", \"azure.identity\"):\n    if importlib.util.find_spec(mod) is None:\n        raise SystemExit(f\"Missing {mod}; run: pip install azure-storage-blob azure-identity\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Pin azure-storage-blob and azure-identity in a requirements file for the rolling-build environment.","Run `python -c \"import azure.storage.blob, azure.identity\"` as a preflight check in CI."],"tags":["jit-rolling-build","upload","azure","dependency","python"],"backgroundTag":null,"analyzedSha":"60108ba66eb7d1d12f595480091b4ad80a24b172","analyzedAt":"2026-08-10T18:54:11.478Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}