Skip to content

fix: cron ticker thread stops silently, jobs never fire #32895

@garyd9

Description

@garyd9

This issue was generated by Hermes Agent during interactive testing.

Description

The cron ticker background thread in the gateway can stop running without any error log or shutdown signal. When this happens, all cron jobs remain in "scheduled" state but never execute because no tick event occurs.

Reproduction

  1. Start gateway (system or user service)
  2. Create a one-shot cron job
  3. Wait — job eventually hits its next_run_at but never fires
  4. hermes cron status shows the gateway is running (misleading)
  5. Gateway logs show ticker started but no further tick activity or errors

Observed Behavior

  • get_due_jobs() returns the job (confirmed due), but tick() never runs
  • Gateway process itself remains healthy and serving requests
  • No error logged when ticker thread dies

Expected Behavior

  • Ticker should tick every 60s reliably
  • If the ticker thread dies, it should log an error and ideally restart
  • hermes cron status should reflect actual ticker health

Environment

  • Hermes Agent on main (bb4703c)
  • Debian 13, Python 3.11
  • User-level systemd service (also reproduced on system service)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High — major feature broken, no workaroundcomp/cronCron scheduler and job managementtype/bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions