Skip to content

fix(cron): show delivery failure inline with last-run status - #12592

Closed
williams145 wants to merge 1 commit into
NousResearch:mainfrom
williams145:fix/issue-5861-delivery-error-display-v2
Closed

williams145 wants to merge 1 commit into
NousResearch:mainfrom
williams145:fix/issue-5861-delivery-error-display-v2

Conversation

@williams145

Copy link
Copy Markdown

Problem

When a cron job succeeds at running the agent but fails to deliver the output (Discord, Telegram, etc.), last_status is "ok" while the failure sits silently in last_delivery_error. The previous display printed a yellow warning on a separate line — easy to miss, and the status cell still showed a plain green ok, making the job look healthy at a glance.

Fix

hermes_cli/cron.py (hermes cron list terminal command):
When last_delivery_error is set and status is "ok", the status cell now renders as ok ⚠ delivery failed (green + yellow) instead of just ok. The detail line below it is kept.

cli.py (in-chat /cron list):
Status string becomes ok ⚠ delivery failed and a
Delivery error: … line is printed below.

No changes to cron/jobs.py or the data model — last_status
continues to reflect agent execution only, consistent with the
maintainer design in commit c5ab760.

Testing

# hermes cron list — job with delivery error now shows:
#   Last run:  2026-04-18T10:00Z  ok  ⚠ delivery failed
#   ⚠ Delivery failed: discord: 403 Forbidden

# /cron list (in-chat) — same job now shows:
#   Last run: 2026-04-18T10:00Z (ok ⚠ delivery failed)
#   Delivery error: discord: 403 Forbidden

Fixes #5861

When a cron job's agent run succeeds but delivery to a channel
(Discord, Telegram, etc.) fails, `last_status` is "ok" while
`last_delivery_error` holds the failure reason.  The previous display
printed a separate yellow warning line that was easy to miss — the
status cell still showed a plain green "ok", making the job look
healthy at a glance.

This commit surfaces the failure directly in the status cell:

  hermes_cli/cron.py (`hermes cron list`)
    "ok" → "ok  ⚠ delivery failed" (green + yellow) when
    `last_delivery_error` is set; the detail line below is kept.

  cli.py (in-chat /cron list)
    Status string becomes "ok ⚠ delivery failed" and a
    "Delivery error: …" line is printed below it.

No changes to cron/jobs.py or the data model — `last_status` still
reflects agent execution only, per the maintainer design decision.

Fixes NousResearch#5861
@williams145
williams145 force-pushed the fix/issue-5861-delivery-error-display-v2 branch from 42c12de to c08accb Compare April 19, 2026 15:29
@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cron Cron scheduler and job management comp/cli CLI entry point, hermes_cli/, setup wizard labels Apr 23, 2026
@williams145

Copy link
Copy Markdown
Author

Friendly bump — fix still applies cleanly to current main (1e5a23fa6). Verified hermes_cli/cron.py:104-105 and cli.py:6024 are unchanged from when this branch was cut. Display-layer fix only — does not touch cron/jobs.py (per the maintainer design in c5ab760). Happy to rebase if needed.

@williams145

Copy link
Copy Markdown
Author

Closing — no maintainer engagement since opening.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/cron Cron scheduler and job management P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Silent cron delivery failures — status shows "ok" even when Discord/Telegram delivery fails

2 participants