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
- 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.
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
- 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.
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
- No CI runs found for PR #{pr_number}. The PR may not have be
- Failed to find CI runs for branch '{branch}': {stderr}
- Could not find a "{artifact_name}" artifact for branch '{bra
- Could not find a "{}" artifact for PR #{pr_number}. Availabl
- The `gh` CLI is required for installing from a branch. Insta
AI-assisted analysis of denoland/deno@9ad36f7a2c (2026-08-20).
Data as JSON: /api/errors/7d9ff56f5dc07814.
Report an issue: GitHub.