Problem Statement
Two smoke test engines are completely broken as of 2026-05-01T05:18 UTC. Both produce 0 agent turns and fail immediately in the agent job. Every PR that triggers these workflows will see red.
Affected Workflows and Run IDs
| Workflow |
Run ID |
Engine |
Error |
| Smoke Gemini |
§25203411975 |
gemini |
API_KEY_INVALID from Google Generative AI API |
| Smoke Crush |
§25203411962 |
crush |
EROFS: read-only file system installing Crush v0.59.0 binary |
Root Causes
Gemini (Smoke Gemini — run 25203411975)
The GOOGLE_GEMINI_API_KEY secret (or equivalent) is invalid or expired. The Gemini CLI successfully reaches generativelanguage.googleapis.com but receives HTTP 400 INVALID_ARGUMENT:
ApiError: {"error":{"code":400,"message":"API key not valid. Please pass a valid API key.",
"status":"INVALID_ARGUMENT","details":[{"reason":"API_KEY_INVALID",
"domain":"googleapis.com","metadata":{"service":"generativelanguage.googleapis.com"}}]}}
Crush (Smoke Crush — run 25203411962)
The @charmland/crush npm package downloads crush_0.59.0_Linux_x86_64.tar.gz successfully but then tries to write the extracted binary to /opt/hostedtoolcache/node/24.14.1/x64/lib/node_modules/@charmland/crush/bin, which is a read-only filesystem:
Error: Installation failed: EROFS: read-only file system, mkdir
'/opt/hostedtoolcache/node/24.14.1/x64/lib/node_modules/`@charmland/crush`/bin'
at install (.../node_modules/`@charmland/crush`/lib.js:162:9)
Proposed Remediation
Gemini: Rotate or renew the GOOGLE_GEMINI_API_KEY repository secret. If the key is managed externally, verify it hasn't expired or been revoked. Re-run Smoke Gemini to confirm.
Crush: Change the Crush installation to extract the binary into a writable location. Options:
- Use the
RUNNER_TOOL_CACHE environment variable (already writable) instead of the global node_modules
- Pre-install the binary in a workflow
pre_activation step to /tmp/gh-aw/ or $RUNNER_TEMP
- Pin to a
crush binary path that doesn't go through @charmland/crush's install() routine
Success Criteria
Smoke Gemini completes at least 1 agent turn and produces a noop/safe output
Smoke Crush completes at least 1 agent turn and produces a noop/safe output
- Both verify against the next PR that runs them
Parent Issue
Tracked in: #29458
Generated by [aw] Failure Investigator (6h) · ● 263.7K · ◷
Problem Statement
Two smoke test engines are completely broken as of 2026-05-01T05:18 UTC. Both produce 0 agent turns and fail immediately in the
agentjob. Every PR that triggers these workflows will see red.Affected Workflows and Run IDs
API_KEY_INVALIDfrom Google Generative AI APIEROFS: read-only file systeminstalling Crush v0.59.0 binaryRoot Causes
Gemini (Smoke Gemini — run 25203411975)
The
GOOGLE_GEMINI_API_KEYsecret (or equivalent) is invalid or expired. The Gemini CLI successfully reachesgenerativelanguage.googleapis.combut receives HTTP 400INVALID_ARGUMENT:Crush (Smoke Crush — run 25203411962)
The
@charmland/crushnpm package downloadscrush_0.59.0_Linux_x86_64.tar.gzsuccessfully but then tries to write the extracted binary to/opt/hostedtoolcache/node/24.14.1/x64/lib/node_modules/@charmland/crush/bin, which is a read-only filesystem:Proposed Remediation
Gemini: Rotate or renew the
GOOGLE_GEMINI_API_KEYrepository secret. If the key is managed externally, verify it hasn't expired or been revoked. Re-run Smoke Gemini to confirm.Crush: Change the Crush installation to extract the binary into a writable location. Options:
RUNNER_TOOL_CACHEenvironment variable (already writable) instead of the global node_modulespre_activationstep to/tmp/gh-aw/or$RUNNER_TEMPcrushbinary path that doesn't go through@charmland/crush'sinstall()routineSuccess Criteria
Smoke Geminicompletes at least 1 agent turn and produces a noop/safe outputSmoke Crushcompletes at least 1 agent turn and produces a noop/safe outputParent Issue
Tracked in: #29458