hermes - 💡(How to fix) Fix Kanban: blocked tasks auto-promoted by daemon without explicit human unblock [1 comments, 2 participants]

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…
GitHub stats
NousResearch/hermes-agent#28944Fetched 2026-05-20 04:01:01
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×4commented ×1

When a Kanban worker calls kanban_block(), the daemon automatically promotes the task back to ready after a short interval and spawns a new worker — without waiting for a human to call hermes kanban unblock <id>.

This creates an infinite loop: block → auto-promote → new worker → block → auto-promote → ...

Root Cause

In one observed case (t_4b73322b), a task accumulated 274 crashed/blocked runs over ~4.5 hours before finally completing, entirely because the auto-promote loop kept re-spawning workers that had nothing to act on.

Fix Action

Fix / Workaround

  • Task t_4b73322b: 274 runs (protocol violations + blocks), 07:00–11:30, before finally completing at 11:36
  • Task t_1f75de5d: 13 runs in ~30 minutes, all blocked with "wait for human decision"
  • hermes kanban block <id> called explicitly by operator before dispatch → daemon still promoted and spawned
  1. Unintended autonomous execution — tasks explicitly marked "manual only" still get dispatched repeatedly
  2. Cost — each spurious worker run consumes API tokens
  3. Production risk — tasks touching production systems (Traefik, Docker, DNS) that are blocked for human review can run autonomously, defeating the safety model
  4. Confusion — operators setting kanban_block as a safety measure have no reliable way to prevent autonomous execution short of archiving the task

Current workaround

Code Example

hermes kanban archive <task_id>
RAW_BUFFERClick to expand / collapse

Summary

When a Kanban worker calls kanban_block(), the daemon automatically promotes the task back to ready after a short interval and spawns a new worker — without waiting for a human to call hermes kanban unblock <id>.

This creates an infinite loop: block → auto-promote → new worker → block → auto-promote → ...

Expected Behaviour

A blocked task should only transition back to ready when a human (or authorized operator) explicitly calls hermes kanban unblock <id>. The whole point of kanban_block is "wait for human input" — the daemon should respect that and not bypass it on a timer.

Actual Behaviour

The daemon promotes blocked tasks automatically after ~1 minute, regardless of whether a human has reviewed or responded. Workers that block waiting for a decision end up running dozens or hundreds of times before the human even sees the first block message.

In one observed case (t_4b73322b), a task accumulated 274 crashed/blocked runs over ~4.5 hours before finally completing, entirely because the auto-promote loop kept re-spawning workers that had nothing to act on.

Observed evidence

  • Task t_4b73322b: 274 runs (protocol violations + blocks), 07:00–11:30, before finally completing at 11:36
  • Task t_1f75de5d: 13 runs in ~30 minutes, all blocked with "wait for human decision"
  • hermes kanban block <id> called explicitly by operator before dispatch → daemon still promoted and spawned

Impact

  1. Unintended autonomous execution — tasks explicitly marked "manual only" still get dispatched repeatedly
  2. Cost — each spurious worker run consumes API tokens
  3. Production risk — tasks touching production systems (Traefik, Docker, DNS) that are blocked for human review can run autonomously, defeating the safety model
  4. Confusion — operators setting kanban_block as a safety measure have no reliable way to prevent autonomous execution short of archiving the task

Current workaround

The only reliable way to prevent daemon pickup is to archive the task:

hermes kanban archive <task_id>

This is destructive and prevents re-running the task later without creating a new one.

Suggested fix

  • kanban_block should set a persistent blocked state that the daemon never auto-promotes
  • Only hermes kanban unblock <id> (explicit human action) should transition a blocked task back to ready
  • Optionally: add a --timeout flag to kanban_block for cases where auto-promote after a time window is genuinely desired (e.g. retry after 1h if no human responds)

Environment

  • Hermes version: Hermes Agent v0.14.0 (2026.5.16)
  • OS: Ubuntu 22.04 (Linux 6.8.0)
  • Kanban dispatcher: running as gateway-embedded daemon

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 Kanban: blocked tasks auto-promoted by daemon without explicit human unblock [1 comments, 2 participants]