---
name: gh-run-view-log-refuses-while-the-run-is-in-progress
description: `gh run view --log` on an IN-PROGRESS run returns an 81-byte refusal that greps as zero Summary lines — reads exactly like a leg that ran no tests; use the per-job REST logs endpoint for a COMPLETED job inside a live run.
metadata:
  type: feedback
---

hertz 2026-09-07 09:26Z (W2 gate): `gh run view <run> --log` while the parent run is still in progress prints "logs will be available when it is complete" (81 bytes) and exits — a `grep -c Summary` on that output is a confident 0, indistinguishable from a leg that ran nothing. The per-job endpoint `gh api repos/<o>/<r>/actions/jobs/<job-id>/logs` serves a COMPLETED job's log even when its run is in progress; that is how the Linux leg of run 34105034028 was read while Windows was still building.

**Why:** the same shape as [[gh-run-list-commit-needs-a-full-sha]] — a tool-side refusal that reads as an empty measurement. A gater who reads "0 Summary" here voids a good leg or re-dispatches a run.

**How to apply:** never read a Summary count from `gh run view --log` unless the run's `status` is `completed`; for a finished job inside a live run, fetch by job id. Also: the `grep -c Summary == 2` rule is GOLDEN-only (two phases); ci runs one nextest invocation, so 1 is correct there — applying the golden rule to ci voids good legs.
