---
name: gh-job-log-refuses-while-run-in-progress
description: "gh run view --job N --log REFUSES while ANY job in the run is still going — exit 1, and with stderr suppressed the grep over it returns a clean zero that reads as 'no failures'."
metadata: 
  node_type: memory
  type: reference
  originSessionId: 12a8ef0e-7168-4db4-9cc0-751034b831c8
  modified: 2026-08-18T05:09:25.320Z
---

Measured 2026-08-04 on golden 30928816784 while `twohost-b` was still in_progress:

    gh run view --repo BigscreenVR/spt-bs-core --job 92072944053 --log
    run 30928816784 is still in progress; logs will be available when it is complete
    exit=1        # 0 lines written

The refusal is RUN-scoped, not job-scoped: the job I asked for had been `completed/failure`
for ten minutes. Any sibling job still running withholds every job's log.

**Why it bites:** I had written `--log 2>/dev/null > out.txt` and then grepped `out.txt` for
`FAIL`. Zero matches. That zero is indistinguishable from "the job had no failures" — the tool
refused, the refusal went to /dev/null, and the empty file answered a question it had never
been asked. Same shape as [[zero-match-filter-reads-as-absent]] and
[[verdict-from-probe-competence]], with `2>/dev/null` supplying the blindfold.

**How to apply:** to read a COMPLETED job's log inside a LIVE run, use the API path, which
works and returned 3514 lines on the same job seconds later:

    gh api repos/<owner>/<repo>/actions/jobs/<job_id>/logs

**Provenance (pinned 2026-08-17, GROUNDED 2026-08-18):** this route is deployah's 2026-08-04
measurement against golden 30928816784. Attribution method — NOT assertion, NOT "whose memory
dir it sits in" (the dir is fleet-SHARED; dozens of distinct originSessionIds live here, so
location was never evidence): this note's `originSessionId` 12a8ef0e-7168-4db4-9cc0-751034b831c8
greps to `owlery/deployah/sessions.log`. General instrument: live session → match
`owlery/<agent>/info.json` session_id; dead session → grep the id against
`owlery/*/sessions.log`. Any citation (runbook amendment included) cites the 2026-08-04
measurement + run number, attributed on the sessions.log grep. Retrieval failure filed
separately by deployah: an unrecalled memory is experienced as a TOOL limitation and gets
reported as a false constraint (his "not yet knowable" claim while this note held the answer).

No leading slash (see [[gh-api-leading-slash-msys-rewrite]]). Never put `2>/dev/null` on a
fetch whose emptiness you intend to interpret — print the exit code and the line count next to
the result, so a refusal cannot masquerade as an absence. Kin: [[verdict-from-exit-not-from-silence]],
[[truncated-grep-read-as-the-population]], [[gh-run-poll-jobs-not-status]].
