Relationships
#3841 trigger.schedule is evaluated in the serve host's local time zone, with no zone field and no doc saying so
Opened by reset · 10/23/2026
On 20261020.024627.0-sha.26dc044f (macOS 27) a workflow with trigger.schedule: "0 7 * * *" served on a host in US Pacific time reports nextRun: 2026-10-22T14:00:00.000Z in /health, so the cron expression is read in the host's zone. Nothing says so and there is no way to say otherwise:
swamp workflow schema get --jsonprints"trigger": {"type": "object", "properties": {"schedule": {"type": "string"}, "inputs": {...}}, "additionalProperties": false}: no zone field.src/domain/workflows/workflow_scheduler.ts:67constructsnew Cron(cronExpression, { paused: ... }, cb)with notimezoneoption, so croner uses the process's local zone.- The workflow reference's Scheduled Workflows section and the serve guide give cron expressions without naming the zone they are read in.
Expected: the reference names the zone a schedule is evaluated in, or the trigger accepts an IANA zone so a schedule means the same on every host.
Actual: the same workflow fires at a different UTC time on each host, and the only way to learn the zone is to read nextRun from /health after deploying.
Steps to reproduce:
swamp workflow schema get --jsonand look undertrigger.- Serve a workflow with
trigger.schedule: "0 7 * * *"on a host whose zone is not UTC and readnextRunfromGET /health.
Suggestion: document that trigger.schedule is evaluated in the server's local zone, and accept an optional trigger.timezone (IANA name) passed through to croner's timezone option.
Open
No activity in this phase yet.
Sign in to post a ripple.