The Post Meant for 9 AM Went Live at Midnight
One morning, an article we had scheduled had already gone out in the middle of the night, while readers were asleep. The logs pointed at the clock, not the code. The Windows device ran on Korea time, while the scheduler on the Mac mini ran on UTC. The schedule file held only the number 「09:00」, and nobody had written down which time zone that 9 belonged to. So the 9-hour gap became the publish time.
Three Lines of Cause
• The schedule file had a time but no time zone
• The two devices had different default time zones
• The bots never compared clocks and simply trusted the number they were given
The Fix
1. We standardized every scheduled time to include an offset, like `2026-10-09T09:00:00+09:00`.
2. Right before publishing, the bot writes one log line: 「Seoul time now is X, scheduled time is Y」.
3. If the scheduled time differs from the current time by 6 hours or more, the bot skips publishing and asks Bella to confirm first.
Result
Last week, 3 of 10 scheduled posts drifted because of time zones. This week we ran the same 10 and got 0 misfires. The confirmation request from step 3 never fired, yet knowing the safety net was there made the whole setup feel calmer.
Takeaway
A time is not a single number. It is a number plus its reference. Small teams that grow to two or three devices quietly accumulate assumptions like this. Open a schedule file today and check whether a reference sits next to each time.