{"record":{"id":"a9cd58ef3f96c987","repo":"dotnet/runtime","slug":"error","errorCode":null,"errorMessage":"Error","messagePattern":"Error","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"src/coreclr/scripts/jitrollingbuild.py","lineNumber":636,"sourceCode":"\n        coreclr_args.verify(args,\n                            \"git_hash\",\n                            lambda unused: True,\n                            \"Unable to set git_hash\")\n\n        coreclr_args.verify(args,\n                            \"use_latest_jit_change\",\n                            lambda unused: True,\n                            \"Unable to set use_latest_jit_change\")\n\n        coreclr_args.verify(args,\n                            \"skip_cleanup\",\n                            lambda unused: True,\n                            \"Unable to set skip_cleanup\")\n\n        if not os.path.isdir(coreclr_args.product_location):\n            logging.error(\"Built product location could not be determined\")\n            raise RuntimeError(\"Error\")\n\n    elif coreclr_args.mode == \"download\":\n\n        coreclr_args.verify(args,\n                            \"git_hash\",\n                            lambda unused: True,\n                            \"Unable to set git_hash\")\n\n        coreclr_args.verify(args,\n                            \"target_dir\",\n                            lambda unused: True,\n                            \"Unable to set target_dir\")\n\n        coreclr_args.verify(args,\n                            \"skip_cleanup\",\n                            lambda unused: True,\n                            \"Unable to set skip_cleanup\")\n","sourceCodeStart":618,"sourceCodeEnd":654,"githubUrl":"https://github.com/dotnet/runtime/blob/b7130aa5e416e88ac48fafe92bf56a9d64e13c97/src/coreclr/scripts/jitrollingbuild.py#L618-L654","documentation":"Raised by setup_args() in 'upload' mode when coreclr_args.product_location is not an existing directory. The product location holds the built clrjit that upload_command will package and push, so a missing directory means there is nothing to upload.","triggerScenarios":"Running 'jitrollingbuild.py upload -git_hash <sha>' when the resolved product_location (artifacts/bin/<OS>.<arch>.<flavor>) does not exist on disk. The check is os.path.isdir(coreclr_args.product_location) at jitrollingbuild.py:634.","commonSituations":"No coreclr build has been run; build output went to a different artifacts path; -arch/-build_type mismatch so the resolved directory name is wrong; running from a repo that was only partially restored (no build step).","solutions":["Build coreclr for the target OS/arch/build_type so the product directory exists.","Verify the path: print or inspect coreclr_args.product_location and 'ls' it.","Ensure -arch and -build_type match an actually-built configuration."],"exampleFix":"// before\njitrollingbuild.py upload -git_hash <sha>   # product_location missing\n// after\n# build coreclr (e.g. build.sh clr+libs -arch x64 -configuration Checked), then:\njitrollingbuild.py upload -git_hash <sha> -arch x64 -build_type Checked","handlingStrategy":"validation","validationCode":"import os\nif not os.path.isdir(coreclr_args.product_location):\n    raise SystemExit(f\"product_location does not exist: {coreclr_args.product_location}; build coreclr first.\")","typeGuard":"null","tryCatchPattern":"null","preventionTips":["Build coreclr before uploading.","Confirm -arch/-build_type match a built configuration.","Validate the product directory path before invoking upload."],"tags":["upload","build","filesystem","configuration"],"analyzedSha":"b7130aa5e416e88ac48fafe92bf56a9d64e13c97","analyzedAt":"2026-08-07T06:17:13.108Z","schemaVersion":2},"datasetVersion":"2026-08-07T15:17:06.553Z"}