Skip to main content
← Back to list
01Issue
BugOpenSwamp CLIPublic
AssigneesNone

Relationships

#2332 verify-build: codegen guard expression reads a nonexistent 'stdout' attribute, so the workflow fails on every commit

Opened by hammz · 9/21/2026

Summary

verification/workflow-verify-build.yaml fails for any commit, regardless of what changed, because the two guards on the codegen-verify job reference an attribute the log resource does not have.

Lines 312 and 337:

guard: "${{ data.latest('build-detect-' + run.id, 'log').attributes.stdout.contains('CHANGED_CODEGEN: true') }}"

The step-output log resource is contentType: text/plain with tags.type: file — it has no attributes.stdout, so evaluating the guard throws instead of returning false.

Observed

swamp workflow run verify-build \
  --input commit=[REDACTED-SECRET-1] --input branch=issue-2249

Run e2763002-b1b2-456b-9e20-1907101bca90. All 9 steps completed and every extension check passed, then:

status: failed
failedStep: codegen-check
failureReason: InvalidExpressionError: Invalid expression: No such key: stdout

>    1 | data.latest('build-detect-' + run.id, 'log').attributes.stdout.contains('CHANGED_CODEGEN: true')
                                                                 ^

The commit under test touched only datastore/ — no codegen/ changes — so the guard should have evaluated false and skipped the job. Because guard evaluation itself throws, the job fails instead of skipping, and the whole workflow is marked failed.

Impact

verify-build cannot pass on any commit, so the pre-PR verification gate in agent-constraints/verification-conventions.md cannot be satisfied, and @swamp/issue-lifecycle's link_pr (which requires verification_passed) is blocked for every issue.

Expected

The guard returns false when CHANGED_CODEGEN: true is absent from the detect step's output, and the codegen-verify job is skipped.

The fix is whatever expression correctly reads a command/shell step's stdout — likely the log resource's content rather than an attributes field. workflow-verify-reviews.yaml:141 guards on data.latest('repo', 'diff').attributes.files, which suggests attributes works for structured resources but not for a text/plain log.

Not in scope of the run that found it

Found while verifying swamp-club#2249 (datastore latest-pointer sharding). Unrelated to that change, which does not touch verification/.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED

Open

9/21/2026, 8:57:07 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.