Skip to main content
← Back to list
01Issue
FeatureShippedSwamp CLIPublic
Assigneeszack

Relationships

#3522 Pause and resume a scheduled workflow without editing or deleting its definition

Opened by swamp_lord · 10/15/2026· Shipped 10/16/2026

Problem

There's no way to temporarily pause a scheduled workflow on serve. During an incident we needed to stop a scheduled GC workflow that was stalling serve (#3518). The options were:

  • edit the live workflow and delete its trigger: block, then remember to restore the exact cron later, or
  • delete the workflow.

Both change the workflow definition, so serve's copy no longer matches the one in git. Neither shows anywhere that the schedule is deliberately off, or why. swamp workflow --help has run, resume and recover, but nothing to pause or disable a schedule.

The scheduler already supports this internally: croner entries are built as new Cron(expression, { paused }, callback) in src/domain/workflows/workflow_scheduler.ts. There's just no way for a user to set it.

Proposed solution

swamp workflow schedule pause <name> [--reason "<text>"]
swamp workflow schedule resume <name>
swamp workflow schedule list            # name, cron, paused, reason, pausedBy, pausedAt, next fire
  • Pause state is stored on serve separately from the workflow definition, so pausing doesn't edit the YAML. Pause state survives workflow edit, serve reload and serve restarts.
  • Pausing only affects the schedule. Manual swamp workflow run and webhook-triggered runs still work.
  • Optionally, --until <time|duration> resumes automatically, so a temporary pause can't be forgotten.
  • Pause and resume are audit-logged and gated by grants like other workflow writes.
  • Serve logs Skipped scheduled workflow "<name>": paused (<reason>) at each skipped fire, so a missing run can be explained from the journal.

Alternatives

  • Removing trigger: from the live definition: this loses the cron and creates drift from git. It's what we have to do today.
  • A trigger.enabled: false field in the YAML: better than deleting the trigger, but it's still a definition change that has to be committed and reverted, which is too heavy for incident response.
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 8 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/16/2026, 8:38:46 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
zack assigned zack10/16/2026, 6:40:59 PM

Sign in to post a ripple.