denoland/deno · error · AnyError

No CI runs found for branch '{branch}'. CI may not have run

Error message

No CI runs found for branch '{branch}'. CI may not have run yet.

What it means

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).

Source

Thrown at cli/tools/upgrade.rs:881

      ".[].databaseId",
    ])
    .output()
    .context("failed to query CI runs")?;

  if !runs_output.status.success() {
    let stderr = String::from_utf8_lossy(&runs_output.stderr);
    bail!("Failed to find CI runs for branch '{branch}': {stderr}");
  }

  let run_ids: Vec<String> = String::from_utf8_lossy(&runs_output.stdout)
    .trim()
    .lines()
    .filter(|l| !l.is_empty())
    .map(|s| s.to_string())
    .collect();

  if run_ids.is_empty() {
    bail!(
      "No CI runs found for branch '{branch}'. \
       CI may not have run yet."
    );
  }

  let temp_dir =
    tempfile::TempDir::new().context("failed to create temporary directory")?;
  let download_dir = temp_dir.path();

  let mut downloaded = false;
  for run_id in &run_ids {
    for name in [&artifact_name, &debug_artifact_name] {
      log::info!(
        "{}",
        colors::gray(format!("Trying run {run_id}, artifact \"{name}\"..."))
      );

      let dl_result = Command::new("gh")

View on GitHub (pinned to 9ad36f7a2c)

Solutions

  1. Wait for the branch's CI to run and upload artifacts, then retry.
  2. Check the branch's checks page (or `gh run list --branch <b> --repo denoland/deno`) to confirm runs exist.
  3. If workflows are disabled/skipped for the branch, trigger one or pick a branch with CI.
  4. Build the branch locally if you cannot wait.
Defensive patterns

Strategy: retry

Validate before calling

until gh run list --branch "$BRANCH" --repo denoland/deno --limit 1 --json databaseId -q '.[].databaseId' 2>/dev/null | grep -q .; do
  echo "waiting for CI on $BRANCH…"; sleep 60
done
deno upgrade --branch "$BRANCH"

Try / catch

for i in 1 2 3; do deno upgrade --branch "$BRANCH" && break || sleep 180; done

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of denoland/deno@9ad36f7a2c (2026-08-20). Data as JSON: /api/errors/7d9ff56f5dc07814. Report an issue: GitHub.