Skip to content

[aw-failures] [P1] Two new job-failure root causes: AWF binary curl reset in Daily SPDD evals + MCP Gateway serena digest-pin sc [Content truncated due to length] #53191

Description

@github-actions

Fix install_awf_binary.sh to retry on transient curl failures — one connection reset kills the entire evals job.

Daily SPDD Spec Planner's evals job failed at the Install AWF binary step in §31957063541 (2026-08-16 15:59 UTC). The main agent job succeeded and created its issue fine — only the downstream evals/reporting pipeline broke.

Raw failure evidence
Downloading checksums from 'https://github.com/github/gh-aw-firewall/releases/download/v0.28.1/checksums.txt'...
curl: (35) Recv failure: Connection reset by peer
##[error]Process completed with exit code 35.
...
/home/runner/work/_temp/....sh: line 43: awf: command not found
##[error]Process completed with exit code 127.

Cascade: Install AWF binary fails → later evals steps are skipped, including Upload evals results → the downstream conclusion job then fails with Unable to download artifact(s): Artifact not found for name: evals, which is what the CI status surfaces as the "real" error even though the true cause is upstream.

Probable root cause: install_awf_binary.sh has no retry/backoff around the curl download of checksums.txt from GitHub Releases, so a single transient TLS reset takes down the whole evals job and only surfaces downstream as a confusing artifact-not-found error.

Proposed remediation: add curl --retry 3 --retry-delay 2 --retry-connrefused (or equivalent) to the checksum/binary download in install_awf_binary.sh. Also make the downstream artifact-download step tolerate a missing evals artifact with a clear "evals skipped upstream" message instead of a raw Unable to download artifact(s) error.

Success criteria: the install step retries through a transient network blip instead of failing the whole job; if retries are exhausted, the top-level failure names the real cause (network) instead of only showing a missing-artifact error three jobs downstream.


Fix the MCP Gateway config (schema or generator) to accept digest-pinned container images — serena's @sha256:... reference fails validation and blocks the whole run.

Package Specification Librarian failed at Start MCP Gateway in §31949448689 (2026-08-16 13:23 UTC), before the agent ever ran.

Raw failure evidence
Configuration validation error (MCP Gateway version: v0.4.9):
Error: jsonschema validation failed with '.../mcp-gateway-config.schema.json#'
  Error: 'oneOf' failed, none matched
    Error: 'ghcr.io/oraios/serena:latest@sha256:[REDACTED]' does not match pattern '^[a-zA-Z0-9][a-zA-Z0-9./_-]*(:([a-zA-Z0-9._-]+|latest))?$'
    Error: missing property 'url'
    Error: value must be 'http'
    Error: additional properties 'entrypointArgs', 'mounts', 'args', 'container', 'entrypoint' not allowed
ERROR: Gateway failed to become ready

Probable root cause: the committed lock file's "serena" MCP server config uses a plain tag (ghcr.io/oraios/serena:latest), but at runtime the gateway config is resolved/re-pinned to include a @sha256:... digest suffix — and the schema's container-image regex pattern rejects any @sha256: suffix, only bare tags pass. This is a shared-component bug: both Linter Miner and Package Specification Librarian import the same shared/mcp/serena.md, so every workflow using this shared Serena MCP config is at risk of hitting the same schema rejection.

Proposed remediation: either (a) loosen mcp-gateway-config.schema.json's container-image pattern to accept @sha256:<64-hex> digest suffixes, or (b) stop injecting a resolved digest into the container field for stdio-type MCP servers at gateway-config-build time, keeping the plain tag the lock file already specifies.

Success criteria: Package Specification Librarian (and any other workflow importing shared/mcp/serena.md) starts the MCP Gateway with serena registered successfully, with no jsonschema validation failed error, across the next 3 scheduled runs.

References:

Generated by 🔍 [aw] Failure Investigator (6h) · agent · 210.1 AIC · ⌖ 7 AIC · ⊞ 5.6K ·

  • expires on Aug 23, 2026, 11:11 AM UTC-08:00

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions