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

Relationships

↔ sibling #2468

#2472 serve --hot-reload: a changed trigger override schedule is logged as applied but the built-in cron keeps firing

Opened by randybias · 9/24/2026· Shipped 10/5/2026

Problem

With swamp serve --hot-reload, changing a trigger override's schedule in the --config file and sending swamp serve reload (SIGHUP) logs that the schedule changed. But the scheduler keeps firing on the workflow's built-in cron.

Measured (20260923.231117.0)

serve runs with --config=/config/serve.yaml --hot-reload. The workflow declares trigger.schedule: "0 5 * * *". The config's triggers: override for it was changed to schedule: "44 10 * * *", confirmed in the pod's mounted file, then:

$ swamp serve reload --repo-dir /data/repo
Sent SIGHUP to serve process 68

Server log, in order:

SIGHUP received, reloading pulled extensions...
Scheduled workflow "mircloud-sweep-cabling-drift" ("0 5 * * *")
Registered schedule for workflow "mircloud-sweep-cabling-drift": "0 5 * * *"
Updated trigger overrides: 1 schedule(s) changed
Hot-reloaded 65 type(s)
Reloaded 1 trigger override(s) from serve.yaml
  • GET /health afterwards: {"cronExpression":"0 5 * * *","nextRun":"2026-09-25T05:00:00.000Z"}.
  • No fire at 10:44. The worker received 0 dispatches for the workflow.
  • Control: the same override applied by a restart (07:15Z, cron 21 07 * * *) fired on time, run e47f6fa5 at 07:21:00Z.

Suspected cause (INFERRED from the log order)

The extension hot-reload rescans workflow directories and re-registers each workflow's built-in schedule, and that overwrites the override the reload just applied. It may also discard the override's inputs. That is not measured, and if true it would make a scheduled fire fail input validation after any reload.

Ask

  • Apply trigger overrides AFTER the workflow rescan on reload, or make the rescan override-aware.
  • Make /health's schedules[] report the effective cron and the source (built-in or override).
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 6 MOREREVIEW+ 13 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/5/2026, 10:40:58 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/5/2026, 10:00:10 PM
stack72 linked sibling of #246810/5/2026, 10:02:30 PM
Editable. Press Enter to edit.

stack72 commented 10/5/2026, 10:41:03 PM

Thanks @randybias for reporting this! We shipped: Serve resolves --config at boot, but hot reload and the workflow.trigger get/set/remove handlers read /.swamp/serve.yaml. Resolve the config path once at startup, carry it on the connection context, and use it for reload and the trigger handlers. Trigger get reports the scheduler's in-memory override, and set/remove refuse clearly when the config file cannot be written. Fixes #2472 and the linked #2468.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.