hermes - 💡(How to fix) Fix [Bug]: Cron doesn't work!

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

Verify job exists via cronjob(action='list') — shows state: "scheduled" Trigger immediate execution: cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1') Observe the response: next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at advances, but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at remains null No execution occurs — no session spawned, no findings generated, no delivery Triggered run 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The create and list actions work correctly — only execution is broken. Expected Behavior action='run' should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at and last\\\\\\\\\\\\\\\_status should be updated to reflect the run attempt. Actual Behavior Job remains in state "scheduled" with: last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null last\\\\\\\\\\\\\\\_status: null last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null Delivery never arrives. The schedule timestamp advances as if run is interpreted as "reschedule" rather than "execute now." Environment Hermes Agent running on WSL (Ubuntu under Windows) Model: deepseek/deepseek-v4-pro via OpenRouter Job config: recurring (repeat: "forever"), delivery "origin", skills \\\\\\\\\\\\\\\["analyze"] Date observed: 2026-05-07 Notes This is the cron subsystem (cron/jobs.py + cron/scheduler.py). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

Steps to Reproduce

Bug Description The cronjob tool's action='run' parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at bumps forward) but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at stays null, last\\\\\\\\\\\\\\\_status stays null, and no output is ever delivered. Steps to Reproduce Create a recurring cron job:

Root Cause

Root Cause Analysis (optional)

Fix Action

Fix / Workaround

Bug Description The cronjob tool's action='run' parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at bumps forward) but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at stays null, last\\\\\\\\\\\\\\\_status stays null, and no output is ever delivered. Steps to Reproduce Create a recurring cron job: cronjob(action='create', name='test-job', prompt='Analyze using analyze skill on new data provided', schedule='every 30m', skills=\\\\\\\\\\\\\\\['analyze']) Verify job exists via cronjob(action='list') — shows state: "scheduled" Trigger immediate execution: cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1') Observe the response: next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at advances, but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at remains null No execution occurs — no session spawned, no findings generated, no delivery Triggered run 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The create and list actions work correctly — only execution is broken. Expected Behavior action='run' should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at and last\\\\\\\\\\\\\\\_status should be updated to reflect the run attempt. Actual Behavior Job remains in state "scheduled" with: last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null last\\\\\\\\\\\\\\\_status: null last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null Delivery never arrives. The schedule timestamp advances as if run is interpreted as "reschedule" rather than "execute now." Environment Hermes Agent running on WSL (Ubuntu under Windows) Model: deepseek/deepseek-v4-pro via OpenRouter Job config: recurring (repeat: "forever"), delivery "origin", skills \\\\\\\\\\\\\\\["analyze"] Date observed: 2026-05-07 Notes This is the cron subsystem (cron/jobs.py + cron/scheduler.py). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

Bug Description The cronjob tool's action='run' parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at bumps forward) but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at stays null, last\\\\\\\\\\\\\\\_status stays null, and no output is ever delivered. Steps to Reproduce Create a recurring cron job: cronjob(action='create', name='test-job', prompt='Analyze using analyze skill on new data provided', schedule='every 30m', skills=\\\\\\\\\\\\\\\['analyze']) Verify job exists via cronjob(action='list') — shows state: "scheduled" Trigger immediate execution: cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1') Observe the response: next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at advances, but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at remains null No execution occurs — no session spawned, no findings generated, no delivery Triggered run 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The create and list actions work correctly — only execution is broken. Expected Behavior action='run' should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at and last\\\\\\\\\\\\\\\_status should be updated to reflect the run attempt. Actual Behavior Job remains in state "scheduled" with: last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null last\\\\\\\\\\\\\\\_status: null last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null Delivery never arrives. The schedule timestamp advances as if run is interpreted as "reschedule" rather than "execute now." Environment Hermes Agent running on WSL (Ubuntu under Windows) Model: deepseek/deepseek-v4-pro via OpenRouter Job config: recurring (repeat: "forever"), delivery "origin", skills \\\\\\\\\\\\\\\["analyze"] Date observed: 2026-05-07 Notes This is the cron subsystem (cron/jobs.py + cron/scheduler.py). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

Code Example

Verify job exists via `cronjob(action='list')` — shows state: `"scheduled"`
Trigger immediate execution: `cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1')`
Observe the response: `next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` advances, but `last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` remains null
No execution occurs — no session spawned, no findings generated, no delivery
Triggered `run` 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The `create` and `list` actions work correctly — only execution is broken.
Expected Behavior
`action='run'` should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, `last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` and `last\\\\\\\\\\\\\\\_status` should be updated to reflect the run attempt.
Actual Behavior
Job remains in state `"scheduled"` with:
`last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null`
`last\\\\\\\\\\\\\\\_status: null`
`last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null`
Delivery never arrives. The schedule timestamp advances as if `run` is interpreted as "reschedule" rather than "execute now."
Environment
Hermes Agent running on WSL (Ubuntu under Windows)
Model: deepseek/deepseek-v4-pro via OpenRouter
Job config: recurring (`repeat: "forever"`), delivery `"origin"`, skills `\\\\\\\\\\\\\\\["analyze"]`
Date observed: 2026-05-07
Notes
This is the cron subsystem (`cron/jobs.py` + `cron/scheduler.py`). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

### Steps to Reproduce

Bug Description
The `cronjob` tool's `action='run'` parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (`next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` bumps forward) but `last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` stays null, `last\\\\\\\\\\\\\\\_status` stays null, and no output is ever delivered.
Steps to Reproduce
Create a recurring cron job:

---

Verify job exists via `cronjob(action='list')` — shows state: `"scheduled"`
Trigger immediate execution: `cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1')`
Observe the response: `next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` advances, but `last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` remains null
No execution occurs — no session spawned, no findings generated, no delivery
Triggered `run` 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The `create` and `list` actions work correctly — only execution is broken.
Expected Behavior
`action='run'` should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, `last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at` and `last\\\\\\\\\\\\\\\_status` should be updated to reflect the run attempt.
Actual Behavior
Job remains in state `"scheduled"` with:
`last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null`
`last\\\\\\\\\\\\\\\_status: null`
`last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null`
Delivery never arrives. The schedule timestamp advances as if `run` is interpreted as "reschedule" rather than "execute now."
Environment
Hermes Agent running on WSL (Ubuntu under Windows)
Model: deepseek/deepseek-v4-pro via OpenRouter
Job config: recurring (`repeat: "forever"`), delivery `"origin"`, skills `\\\\\\\\\\\\\\\["analyze"]`
Date observed: 2026-05-07
Notes
This is the cron subsystem (`cron/jobs.py` + `cron/scheduler.py`). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

### Expected Behavior

Cron entry should have scheduled a job

### Actual Behavior

It keeps thinking that it is running forever.

### Affected Component

Agent Core (conversation loop, context compression, memory)

### Messaging Platform (if gateway-related)

_No response_

### Debug Report

---

### Operating System

Ubuntu WSL

### Python Version

_No response_

### Hermes Version

_No response_

### Additional Logs / Traceback (optional)
RAW_BUFFERClick to expand / collapse

Bug Description

Bug Description The cronjob tool's action='run' parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at bumps forward) but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at stays null, last\\\\\\\\\\\\\\\_status stays null, and no output is ever delivered. Steps to Reproduce Create a recurring cron job: cronjob(action='create', name='test-job', prompt='Analyze using analyze skill on new data provided', schedule='every 30m', skills=\\\\\\\\\\\\\\\['analyze']) Verify job exists via cronjob(action='list') — shows state: "scheduled" Trigger immediate execution: cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1') Observe the response: next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at advances, but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at remains null No execution occurs — no session spawned, no findings generated, no delivery Triggered run 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The create and list actions work correctly — only execution is broken. Expected Behavior action='run' should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at and last\\\\\\\\\\\\\\\_status should be updated to reflect the run attempt. Actual Behavior Job remains in state "scheduled" with: last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null last\\\\\\\\\\\\\\\_status: null last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null Delivery never arrives. The schedule timestamp advances as if run is interpreted as "reschedule" rather than "execute now." Environment Hermes Agent running on WSL (Ubuntu under Windows) Model: deepseek/deepseek-v4-pro via OpenRouter Job config: recurring (repeat: "forever"), delivery "origin", skills \\\\\\\\\\\\\\\["analyze"] Date observed: 2026-05-07 Notes This is the cron subsystem (cron/jobs.py + cron/scheduler.py). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

Steps to Reproduce

Bug Description The cronjob tool's action='run' parameter does not trigger immediate execution of a scheduled cron job. The job's schedule time advances (next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at bumps forward) but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at stays null, last\\\\\\\\\\\\\\\_status stays null, and no output is ever delivered. Steps to Reproduce Create a recurring cron job: cronjob(action='create', name='test-job', prompt='Analyze using analyze skill on new data provided', schedule='every 30m', skills=\\\\\\\\\\\\\\\['analyze']) Verify job exists via cronjob(action='list') — shows state: "scheduled" Trigger immediate execution: cronjob(action='run', job\\\\\\\\\\\\\\\_id='96c578e8b6e1') Observe the response: next\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at advances, but last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at remains null No execution occurs — no session spawned, no findings generated, no delivery Triggered run 3 consecutive times (at ~10-minute intervals) with zero executions across all attempts. The create and list actions work correctly — only execution is broken. Expected Behavior action='run' should immediately execute the job in a fresh session and deliver results to the configured delivery target. At minimum, last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at and last\\\\\\\\\\\\\\\_status should be updated to reflect the run attempt. Actual Behavior Job remains in state "scheduled" with: last\\\\\\\\\\\\\\\_run\\\\\\\\\\\\\\\_at: null last\\\\\\\\\\\\\\\_status: null last\\\\\\\\\\\\\\\_delivery\\\\\\\\\\\\\\\_error: null Delivery never arrives. The schedule timestamp advances as if run is interpreted as "reschedule" rather than "execute now." Environment Hermes Agent running on WSL (Ubuntu under Windows) Model: deepseek/deepseek-v4-pro via OpenRouter Job config: recurring (repeat: "forever"), delivery "origin", skills \\\\\\\\\\\\\\\["analyze"] Date observed: 2026-05-07 Notes This is the cron subsystem (cron/jobs.py + cron/scheduler.py). The job was created and listed correctly — it's specifically the run trigger that's failing. Could be a race condition, a missing dispatch call, or the run action being routed to reschedule-only logic.

Expected Behavior

Cron entry should have scheduled a job

Actual Behavior

It keeps thinking that it is running forever.

Affected Component

Agent Core (conversation loop, context compression, memory)

Messaging Platform (if gateway-related)

No response

Debug Report

Report: https://paste.rs/CWaWc

 Agent log: https://paste.rs/aGnTZ

Operating System

Ubuntu WSL

Python Version

No response

Hermes Version

No response

Additional Logs / Traceback (optional)

Root Cause Analysis (optional)

No response

Proposed Fix (optional)

No response

Are you willing to submit a PR for this?

  • I'd like to fix this myself and submit a PR

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