◐ Off-By-One · answer catalog

github-actions-dependency-checkout-nonexistent-repo

2 answer(s)godockergodocker

github-actions-dependency-checkout-nonexistent-repo

📦 Source in repository (JSON)

Answer 1

Solution written to ~/SOLUTION.md (301 lines).

What I found and verified

Root cause: The workflow conflates the Go module path with the GitHub repo host path. actions/checkout's repository: expects OWNER/REPO, but the workflow used wojons/consensus — which is only the module name declared in go.mod, not a real repository.

Identity Value
Go module path github.com/wojons/consensus
Real repo host path github.com/totalwindupflightsystems/consensus
Branch / HEAD master / 576dc076c9c3db113c8fd66edea50345583b6205

Evidence collected by actually running the probes: - git ls-remote --heads https://github.com/wojons/consensus → exit 128, could not read Username (repo doesn't exist) - git ls-remote --heads https://github.com/totalwindupflightsystems/consensus → exit 0, refs/heads/master - Go itself reproduces the failure: go mod tidy runs the same git ls-remote against the module path and dies with exit 128 - A local-path replace github.com/wojons/consensus => /tmp/consensus-real builds and resolves fine (Go validates the replacement against the import path, so host/module mismatch is irrelevant) - After using the correct checkout: all internal/* + pkg/* tests pass; only demo fails — a pre-existing, unrelated TestSmokeKeyless failure (mock LLM returns HTTP 400 "model ambiguous"), now visible because checkout no longer masks it - The pre-push guard script returns OK/exit 0 for the real repo and FAIL/exit 1 for the bogus one (tested both directions)

The fix: change repository: wojons/consensus → repository: totalwindupflightsystems/consensus, keep the replace github.com/wojons/consensus => ../consensus unchanged (do not rewrite imports), and add the git ls-remote --exit-code --heads guard as a pre-push/CI step.

Evidence & signatures

# Evidence
- Problem class: github-actions-dependency-checkout-nonexistent-repo
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-24T14:16:36.288Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "Workflow that checks out a sibling Go repo by WRONG org (wojons/consensus) fails at the checkout step before any test runs, masking all later steps in the job (fix-first step: the checkout error hides whether go test would pass). The module path inside go.mod (github.com/wojons/consensus) is NOT the repo host path \u2014 the public repo lives at github.com/totalwindupflightsystems/consensus. git ls-remote --heads on the exact repository: value is the 5-second probe that catches this pre-push.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "github-actions-dependency-checkout-nonexistent-repo", "provider": "openrouter", "solved_at": "2026-09-24T14:16:36.288Z", "version": ""}

Answer 2

Solution written to ~/SOLUTION.md (301 lines).

What I found and verified

Root cause: The workflow conflates the Go module path with the GitHub repo host path. actions/checkout's repository: expects OWNER/REPO, but the workflow used wojons/consensus — which is only the module name declared in go.mod, not a real repository.

Identity Value
Go module path github.com/wojons/consensus
Real repo host path github.com/totalwindupflightsystems/consensus
Branch / HEAD master / 576dc076c9c3db113c8fd66edea50345583b6205

Evidence collected by actually running the probes: - git ls-remote --heads https://github.com/wojons/consensus → exit 128, could not read Username (repo doesn't exist) - git ls-remote --heads https://github.com/totalwindupflightsystems/consensus → exit 0, refs/heads/master - Go itself reproduces the failure: go mod tidy runs the same git ls-remote against the module path and dies with exit 128 - A local-path replace github.com/wojons/consensus => /tmp/consensus-real builds and resolves fine (Go validates the replacement against the import path, so host/module mismatch is irrelevant) - After using the correct checkout: all internal/* + pkg/* tests pass; only demo fails — a pre-existing, unrelated TestSmokeKeyless failure (mock LLM returns HTTP 400 "model ambiguous"), now visible because checkout no longer masks it - The pre-push guard script returns OK/exit 0 for the real repo and FAIL/exit 1 for the bogus one (tested both directions)

The fix: change repository: wojons/consensus → repository: totalwindupflightsystems/consensus, keep the replace github.com/wojons/consensus => ../consensus unchanged (do not rewrite imports), and add the git ls-remote --exit-code --heads guard as a pre-push/CI step.

Evidence & signatures

# Evidence
- Problem class: github-actions-dependency-checkout-nonexistent-repo
- Model: openrouter/deepseek/deepseek-v4.1-flash
- Solved: 2026-09-24T14:16:36.288Z
- Verification: solution produced by pi in sandbox; see signatures.json
{"description": "Workflow that checks out a sibling Go repo by WRONG org (wojons/consensus) fails at the checkout step before any test runs, masking all later steps in the job (fix-first step: the checkout error hides whether go test would pass). The module path inside go.mod (github.com/wojons/consensus) is NOT the repo host path \u2014 the public repo lives at github.com/totalwindupflightsystems/consensus. git ls-remote --heads on the exact repository: value is the 5-second probe that catches this pre-push.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4.1-flash", "problem_class": "github-actions-dependency-checkout-nonexistent-repo", "provider": "openrouter", "solved_at": "2026-09-24T14:16:36.288Z", "version": ""}
Generated from the verified corpus · MIT licensedBack to the catalog