hermes - 💡(How to fix) Fix fix(cli): unknown skills should warn instead of crash to prevent Kanban worker auto-blocking

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

This is defense-in-depth: even if invalid skills get into the DB through any path (API, manual SQL, agent error), the worker survives and does useful work with the valid skills.

Root Cause

Both cli.py:14030 and tui_gateway/server.py:1877 raise ValueError when build_preloaded_skills_prompt returns missing skills. This is too aggressive — a typo in a skill name should not crash the entire worker.

Fix Action

Fix

Changed both locations to log a warning and continue with whatever skills loaded successfully:

# Before:
raise ValueError(f"Unknown skill(s): {missing_display}")

# After:
logger.warning(
    "Unknown skill(s) requested, skipping: %s. "
    "Available skills can be listed with `hermes skills list`.",
    missing_display,
)

This is defense-in-depth: even if invalid skills get into the DB through any path (API, manual SQL, agent error), the worker survives and does useful work with the valid skills.

Code Example

# Before:
raise ValueError(f"Unknown skill(s): {missing_display}")

# After:
logger.warning(
    "Unknown skill(s) requested, skipping: %s. "
    "Available skills can be listed with `hermes skills list`.",
    missing_display,
)
RAW_BUFFERClick to expand / collapse

Problem

When a Kanban task references a non-existent skill (e.g. skills=["research"] instead of skills=["arxiv"]), the worker process crashes on startup with ValueError: Unknown skill(s): research.

This causes:

  1. Worker exits with code 1 (crash)
  2. Dispatcher retries, crashes again
  3. After 2 consecutive failures, the task is auto-blocked
  4. The task can never complete without manual intervention

Root Cause

Both cli.py:14030 and tui_gateway/server.py:1877 raise ValueError when build_preloaded_skills_prompt returns missing skills. This is too aggressive — a typo in a skill name should not crash the entire worker.

Fix

Changed both locations to log a warning and continue with whatever skills loaded successfully:

# Before:
raise ValueError(f"Unknown skill(s): {missing_display}")

# After:
logger.warning(
    "Unknown skill(s) requested, skipping: %s. "
    "Available skills can be listed with `hermes skills list`.",
    missing_display,
)

This is defense-in-depth: even if invalid skills get into the DB through any path (API, manual SQL, agent error), the worker survives and does useful work with the valid skills.

Files Changed

  • cli.py — main CLI entry point
  • tui_gateway/server.py — TUI gateway session init

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(cli): unknown skills should warn instead of crash to prevent Kanban worker auto-blocking