Observed 2026-07-07 while running the docs gate locally for #285. npm run check failed five consecutive runs, each at a DIFFERENT anonymous shallow clone inside build:archives / fetch-openapi (v0.8.4 relay spec, pre-monorepo jeremi/registry-notary at two different SHAs, registry-stack at two different SHAs). Every failing SHA fetched fine when retried individually, and a 12-iteration sequential fetch loop of one of them passed 12/12, so the content and pins are correct; the failures are transient network/throttling during the long multi-clone runs.
Two compounding problems:
- No retry: one dropped connection out of dozens of clones fails the entire
check pipeline, and the seo/links stages behind it never run.
- Swallowed stderr: the error surfaces as
Command failed: git fetch --quiet --depth 1 origin <sha> with git's actual message discarded, so diagnosing transient-vs-real takes manual reproduction.
Suggest: retry each clone/fetch 2-3 times with backoff, and include the child process stderr in the thrown error. Optionally allow SKIP_ARCHIVES=1 for local runs so content edits can complete seo/links checks without rebuilding historical docsets (CI stays authoritative for the full pipeline).
Observed 2026-07-07 while running the docs gate locally for #285.
npm run checkfailed five consecutive runs, each at a DIFFERENT anonymous shallow clone insidebuild:archives/fetch-openapi(v0.8.4 relay spec, pre-monorepojeremi/registry-notaryat two different SHAs,registry-stackat two different SHAs). Every failing SHA fetched fine when retried individually, and a 12-iteration sequential fetch loop of one of them passed 12/12, so the content and pins are correct; the failures are transient network/throttling during the long multi-clone runs.Two compounding problems:
checkpipeline, and the seo/links stages behind it never run.Command failed: git fetch --quiet --depth 1 origin <sha>with git's actual message discarded, so diagnosing transient-vs-real takes manual reproduction.Suggest: retry each clone/fetch 2-3 times with backoff, and include the child process stderr in the thrown error. Optionally allow
SKIP_ARCHIVES=1for local runs so content edits can complete seo/links checks without rebuilding historical docsets (CI stays authoritative for the full pipeline).