{"record":{"id":"7d9ff56f5dc07814","repo":"denoland/deno","slug":"no-ci-runs-found-for-branch-branch-ci-may-not","errorCode":null,"errorMessage":"No CI runs found for branch '{branch}'. CI may not have run yet.","messagePattern":"No CI runs found for branch '(.+?)'\\. CI may not have run yet\\.","errorType":"exception","errorClass":"AnyError","httpStatus":null,"severity":"error","filePath":"cli/tools/upgrade.rs","lineNumber":881,"sourceCode":"      \".[].databaseId\",\n    ])\n    .output()\n    .context(\"failed to query CI runs\")?;\n\n  if !runs_output.status.success() {\n    let stderr = String::from_utf8_lossy(&runs_output.stderr);\n    bail!(\"Failed to find CI runs for branch '{branch}': {stderr}\");\n  }\n\n  let run_ids: Vec<String> = String::from_utf8_lossy(&runs_output.stdout)\n    .trim()\n    .lines()\n    .filter(|l| !l.is_empty())\n    .map(|s| s.to_string())\n    .collect();\n\n  if run_ids.is_empty() {\n    bail!(\n      \"No CI runs found for branch '{branch}'. \\\n       CI may not have run yet.\"\n    );\n  }\n\n  let temp_dir =\n    tempfile::TempDir::new().context(\"failed to create temporary directory\")?;\n  let download_dir = temp_dir.path();\n\n  let mut downloaded = false;\n  for run_id in &run_ids {\n    for name in [&artifact_name, &debug_artifact_name] {\n      log::info!(\n        \"{}\",\n        colors::gray(format!(\"Trying run {run_id}, artifact \\\"{name}\\\"...\"))\n      );\n\n      let dl_result = Command::new(\"gh\")","sourceCodeStart":863,"sourceCodeEnd":899,"githubUrl":"https://github.com/denoland/deno/blob/9ad36f7a2cce60488e6ec52283efb32efddaf93a/cli/tools/upgrade.rs#L863-L899","documentation":"The `gh run list` call for the branch succeeded but returned zero run IDs, so Deno has no CI runs to search for artifacts. Unlike a failed lookup, this is specifically 'no runs yet': the branch exists but GitHub Actions has not recorded completed runs for it (or none matched the query).","triggerScenarios":"Upgrading from a freshly pushed branch before its workflows start; a branch whose workflow runs are still queued/in progress with no completed runs; workflows skipped for that branch; runs list filtered out by the query parameters.","commonSituations":"Tracking a maintainer's in-progress work right after push; branches in repos where Actions are disabled or path-filtered; GitHub delays in workflow scheduling.","solutions":["Wait for the branch's CI to run and upload artifacts, then retry.","Check the branch's checks page (or `gh run list --branch <b> --repo denoland/deno`) to confirm runs exist.","If workflows are disabled/skipped for the branch, trigger one or pick a branch with CI.","Build the branch locally if you cannot wait."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"until gh run list --branch \"$BRANCH\" --repo denoland/deno --limit 1 --json databaseId -q '.[].databaseId' 2>/dev/null | grep -q .; do\n  echo \"waiting for CI on $BRANCH…\"; sleep 60\ndone\ndeno upgrade --branch \"$BRANCH\"","typeGuard":null,"tryCatchPattern":"for i in 1 2 3; do deno upgrade --branch \"$BRANCH\" && break || sleep 180; done","preventionTips":["Wait until the branch's workflow has at least one run before installing.","Confirm Actions are enabled for the branch (no path filters skipping it).","Build locally when you need the branch before CI catches up."],"tags":["upgrade","branch-build","ci","github-actions","timing"],"backgroundTag":"ci-run-not-found","analyzedSha":"9ad36f7a2cce60488e6ec52283efb32efddaf93a","analyzedAt":"2026-08-20T13:07:44.778Z","schemaVersion":2},"datasetVersion":"2026-08-31T09:17:48.483Z"}