Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneeshammz

Relationships

#2905 workflow reject leaves sibling gates waiting_approval and dependents pending in a failed, retryable run

Opened by hammz · 10/1/2026· Shipped 10/5/2026

Description

Rejecting a manual approval gate (src/libswamp/workflows/reject.ts, around lines 176-178) fails the gate and its job, then calls run.complete(). The run becomes failed, but sibling gates in other jobs stay waiting_approval, sibling jobs stay running, and dependent steps and jobs stay pending. A failed run is retryable (ExecutionService resume accepts suspended or failed runs), so the retry starts from a record with open work.

Found while planning swamp-club#2895 (cancel/supersede leave a cancelled run's jobs running). That fix introduces src/domain/workflows/abort_settlement.ts with a settlement entry point that is the natural tool here, but reject is a different terminal status with retry semantics, so it is tracked separately.

Steps to reproduce

Use the workflow from swamp-club#2895 (two parallel jobs each starting with a manual_approval gate, plus an always-teardown job). Run it until it suspends, then reject one gate with swamp workflow reject.

Expected

A failed run holds no job running and no step waiting_approval; unfinished work is settled consistently with an aborted run, and a retry behaves predictably.

Actual

The sibling gate stays waiting_approval, its job stays running, and dependents stay pending in the failed record.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 15 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/5/2026, 9:49:49 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
hammz assigned hammz10/5/2026, 5:23:00 PM

Sign in to post a ripple.