{"id":"6a26dd72ddc38a01aa372048","title":"2026 06 08 Issue 282","path":"how-to/committee/release-notes/2026-06-08-issue-282","contentMarkdown":"# 08-Jun-2026 — timezone-correct cron, carry config across task-id renames, and cap manual backup concu... [#282](https://github.com/nbarrett/ngx-ramblers/issues/282)\n\n## [build 671](https://github.com/nbarrett/ngx-ramblers/actions/runs/27146990563) — [commit 8de0684](https://github.com/nbarrett/ngx-ramblers/commit/8de0684780eae43e785a9b54aa0e968d82693680)\n\n_____\n\nTwo defects in the scheduled-task scheduler:\n\n1. Timezone. cron.createTask was called with no options, so node-cron\nevaluated cron expressions in the container's system zone (UTC on\nFly). \"0 3 * * *\" therefore fired at 03:00 UTC = 04:00 BST, an hour\nlater than intended, and the UI (which renders in Europe/London)\nshowed 04:00. Both createTask call sites now pass\n{timezone: \"Europe/London\"} via a shared scheduleTimezone constant,\nso daily-at-03:00 fires at 03:00 local year-round (BST and GMT) and\nthe displayed next-run matches.\n\n2. Task-id rename silently disabled the task. enabled state, cron\nexpression, settings and run history are all keyed by task id. When\nthe backups task id changed from \"all-environments-backup\" to\n\"backups\", the persisted \"enabled\" flag no longer matched, so on the\nnext restart the task registered with its code default enabled:false,\nthe cron timer was never armed, and the daily run silently stopped.\n\nScheduledTaskDefinition now accepts an optional previousIds[]. On\nregistration, migratePreviousTaskIds carries enabled/cron/settings\nand run-history forward from a legacy id to the current id when the\ncurrent id has no saved configuration, and logs a loud WARNING so a\nrename can never silently disable a task again. The backups task\ndeclares previousIds: [\"all-environments-backup\"]. The decision logic\nis extracted into a pure carryForwardConfiguration function for\ntesting.","contentHtml":"<h1>08-Jun-2026 — timezone-correct cron, carry config across task-id renames, and cap manual backup concu... <a href=\"https://github.com/nbarrett/ngx-ramblers/issues/282\">#282</a></h1>\n<h2><a href=\"https://github.com/nbarrett/ngx-ramblers/actions/runs/27146990563\">build 671</a> — <a href=\"https://github.com/nbarrett/ngx-ramblers/commit/8de0684780eae43e785a9b54aa0e968d82693680\">commit 8de0684</a></h2>\n<hr>\n<p>Two defects in the scheduled-task scheduler:</p>\n<ol>\n<li><p>Timezone. cron.createTask was called with no options, so node-cron\nevaluated cron expressions in the container&#39;s system zone (UTC on\nFly). &quot;0 3 * * *&quot; therefore fired at 03:00 UTC = 04:00 BST, an hour\nlater than intended, and the UI (which renders in Europe/London)\nshowed 04:00. Both createTask call sites now pass\n{timezone: &quot;Europe/London&quot;} via a shared scheduleTimezone constant,\nso daily-at-03:00 fires at 03:00 local year-round (BST and GMT) and\nthe displayed next-run matches.</p>\n</li>\n<li><p>Task-id rename silently disabled the task. enabled state, cron\nexpression, settings and run history are all keyed by task id. When\nthe backups task id changed from &quot;all-environments-backup&quot; to\n&quot;backups&quot;, the persisted &quot;enabled&quot; flag no longer matched, so on the\nnext restart the task registered with its code default enabled:false,\nthe cron timer was never armed, and the daily run silently stopped.</p>\n</li>\n</ol>\n<p>ScheduledTaskDefinition now accepts an optional previousIds[]. On\nregistration, migratePreviousTaskIds carries enabled/cron/settings\nand run-history forward from a legacy id to the current id when the\ncurrent id has no saved configuration, and logs a loud WARNING so a\nrename can never silently disable a task again. The backups task\ndeclares previousIds: [&quot;all-environments-backup&quot;]. The decision logic\nis extracted into a pure carryForwardConfiguration function for\ntesting.</p>\n"}