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

Relationships

#4186 A resume runs settled work after the teardown gated on it has already run, and nothing tears that work down

Opened by zack · 10/30/2026

Raised by the adversarial review of #4175. Traced in the code, not reproduced.

Workflow: j1, then next gated succeeded on j1, then teardown gated always on next. The abort fires during j1, which goes on to succeed.

  1. next is work, so it is settled as cancelled with settledByAbort.
  2. teardown is a cleanup job, so it runs and succeeds, removing what j1 created.
  3. After workflow recover and a resume, reopenAbortedWork resets next but not teardown.
  4. next runs against the torn-down state, teardown is already succeeded and is not walked, and the run can end succeeded with whatever next created left behind.

Before #4175 both jobs stayed unstarted until the cancel settled them, so a resume ran them in order. The same holds at step level since #4149, whose known gaps list it, and design/primitives/workflows.md says cleanup that already ran is not run again.

Decision needed: reopen a cleanup job or step that transitively depends on reopened work, so it runs again after that work, or keep at-most-once teardown and have the design doc state that a resume can run work after its teardown.

02Bog Flow
◉OPEN○TRIAGED○IN PROGRESS○SHIPPED

Open

10/30/2026, 5:34:44 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.