Describe the bug
When auxiliary tasks (title_generation, session_search, compression) fail — e.g. due to provider 402 errors or network timeouts — Hermes logs a WARNING and silently drops the operation. There is no notification to the user, no Telegram alert, no error escalation, and no way to detect the failure until manually inspecting logs.
In practice: 45 interactive sessions accumulated NULL titles over 19 days (April 6–24) due to OpenRouter 402 errors on auxiliary calls. The main conversation continued normally, making the failure completely invisible.
Steps to reproduce
- Configure an auxiliary provider with insufficient credits or that is unreachable (e.g. OpenRouter key with monthly token cap)
- Complete several sessions normally — they appear to work fine
- Run:
sqlite3 ~/.hermes/state.db "SELECT COUNT(*) FROM sessions WHERE title IS NULL AND message_count > 2"
- Sessions silently accumulate with no titles and no search summaries
Expected behavior
After N consecutive auxiliary task failures (suggested: 3+), Hermes should:
- Deliver a warning to the active platform (Telegram message / CLI inline notice) naming the failing task and error type
- Surface this in
hermes doctor output and hermes status
- Ideally provide a
hermes sessions retitle or similar backfill command for recovery
Actual behavior
Failure is logged at WARNING level only in agent.log. No user-visible notification. No recovery path. Affected sessions are permanently unsummarized and unsearchable unless a custom backfill script is written manually.
Affected components
agent/title_generator.py — swallows None return silently
agent/auxiliary_client.py — call_llm() failure handling never escalates to user
run_agent.py — session end flow has no failure counter or alert threshold
Environment
- Platform: macOS 25.5.0 (Darwin)
- Shell: zsh
- Hermes version: v0.11.0
Describe the bug
When auxiliary tasks (
title_generation,session_search,compression) fail — e.g. due to provider 402 errors or network timeouts — Hermes logs aWARNINGand silently drops the operation. There is no notification to the user, no Telegram alert, no error escalation, and no way to detect the failure until manually inspecting logs.In practice: 45 interactive sessions accumulated
NULLtitles over 19 days (April 6–24) due to OpenRouter 402 errors on auxiliary calls. The main conversation continued normally, making the failure completely invisible.Steps to reproduce
sqlite3 ~/.hermes/state.db "SELECT COUNT(*) FROM sessions WHERE title IS NULL AND message_count > 2"Expected behavior
After N consecutive auxiliary task failures (suggested: 3+), Hermes should:
hermes doctoroutput andhermes statushermes sessions retitleor similar backfill command for recoveryActual behavior
Failure is logged at
WARNINGlevel only inagent.log. No user-visible notification. No recovery path. Affected sessions are permanently unsummarized and unsearchable unless a custom backfill script is written manually.Affected components
agent/title_generator.py— swallowsNonereturn silentlyagent/auxiliary_client.py—call_llm()failure handling never escalates to userrun_agent.py— session end flow has no failure counter or alert thresholdEnvironment