hermes - 💡(How to fix) Fix fix(cron): config migration (23 to 24) may silently clear cron/jobs.json

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

  • OR: update should warn before discarding jobs

Root Cause

The file ~/.hermes/cron/jobs.json exists after the update but is empty or truncated. The config migration code path may be rewriting the file without preserving existing jobs.

Previous related fix: commit 2a6cbf52d — but this scenario may not raise because the file is valid JSON, just empty.

Fix Action

Workaround

Restore from ~/.hermes/state-snapshots/YYYYMMDD-HHMMSS-pre-update/cron/jobs.json.

RAW_BUFFERClick to expand / collapse

Bug Description

After running hermes update (v2026.5.29, 118 commits), which migrated config version from 23 to 24, the file ~/.hermes/cron/jobs.json was found empty — all 17 scheduled cron jobs were lost silently.

Impact

  • All cron jobs stopped working
  • User only noticed hours later when expected reports didn't arrive
  • No automatic alert or restoration mechanism
  • The pre-update snapshot (state-snapshots/YYYYMMDD-HHMMSS-pre-update/cron/jobs.json) retained the data, but no auto-restore occurred

Steps to Reproduce

  1. Have ~17 cron jobs configured
  2. Run hermes update with config version migration (23 to 24)
  3. Observe that cron/jobs.json is empty after the update
  4. Cron ticker restarts with 0 jobs

Root Cause Analysis

The file ~/.hermes/cron/jobs.json exists after the update but is empty or truncated. The config migration code path may be rewriting the file without preserving existing jobs.

Previous related fix: commit 2a6cbf52d — but this scenario may not raise because the file is valid JSON, just empty.

Expected Behavior

  • Config migration should preserve existing cron jobs
  • OR: update should warn before discarding jobs
  • OR: auto-restore from pre-update snapshot

Environment

  • Hermes Agent v0.15.1 (2026.5.29)
  • Linux
  • Python 3.11.2
  • Cron storage: jobs.json

Workaround

Restore from ~/.hermes/state-snapshots/YYYYMMDD-HHMMSS-pre-update/cron/jobs.json.

Suggested Fix

  1. Migration handler preserving existing jobs
  2. Post-update integrity check comparing with snapshot
  3. Warning during update if jobs will be discarded

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix fix(cron): config migration (23 to 24) may silently clear cron/jobs.json