{"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/60108ba66eb7d1d12f595480091b4ad80a24b172/src/coreclr/scripts/jitrollingbuild.py#L618-L654","documentation":"Raised by setup_args in jitrollingbuild.py for the 'upload' subcommand. After argument parsing, it checks `if not os.path.isdir(coreclr_args.product_location)`; if the built-product directory cannot be found it logs 'Built product location could not be determined' and raises RuntimeError(\"Error\"). This is a guard before upload tries to read JIT binaries from product_location.","triggerScenarios":"Running upload when the product_location (derived from core_root / repo layout, or passed explicitly) does not exist on disk — e.g. no build was done, or -core_root points at a non-existent path.","commonSituations":"Skipping the build step; wrong repo root; CORE_ROOT environment variable pointing at a stale or cleaned directory; running on a fresh clone.","solutions":["Build the CLR product so the product directory exists (e.g. `build.cmd clr+libs -arch x64 -c Checked`).","Pass -core_root explicitly pointing at a valid Core_Root that contains the product binaries.","Verify the directory with `ls <product_location>` and fix the path/repo root."],"exampleFix":"// before\npython jitrollingbuild.py upload -git_hash abc   # product_location missing -> 'Error'\n// after\nbuild.cmd clr+libs -arch x64 -c Checked\npython jitrollingbuild.py upload -git_hash abc","handlingStrategy":"validation","validationCode":"import os\nif not os.path.isdir(product_location):\n    raise SystemExit(f\"product_location does not exist: {product_location}; build clr+libs first\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Gating upload on a build step in your pipeline ensures product_location exists.","Pass -core_root explicitly when the auto-detection is unreliable."],"tags":["jit-rolling-build","upload","build-artifacts","argument-validation","python"],"backgroundTag":null,"analyzedSha":"60108ba66eb7d1d12f595480091b4ad80a24b172","analyzedAt":"2026-08-10T18:54:11.478Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}