Problem (observed in real usage)
100% of cron-scheduled Hermes sessions in the last 7 days (18 of 18) terminated with provider-level connection errors before completing their scheduled task. 61% of these (11/18) died with ≤2 messages — the model never even emitted a single tool call.
Evidence (aggregated, anonymized)
- Scope: All 18 cron sessions recorded in the last 7 days (2026-06-20 through 2026-06-27)
- Error types:
ReadError (12/18, broken pipe mid-stream) and APIConnectionError (6/18, timeout on connect)
- Model: All sessions pinned to
deepseek-v4-flash
- Jobs affected (by cron job ID):
0b013aa0bd43 (runs 4-8×/day — evolution introspection/analysis), 332261ca5226 (oracular dream — 2× failed), 3fe172c3c437, c0d29b70d1f4, e0aa9a3d6252, e2864ae22932, 39feda54b944
- Session dump files (under ~/.hermes/sessions/, all end with error objects): all 18 files present with
failure_category: timeout in error objects
- Comparison to user sessions: User sessions in the same period show far lower failure rates — the DeepSeek API appears to drop connections at a higher rate for short-lived cron sessions than for longer user interactions
Impact on real tasks
The entire evolution self-improvement pipeline runs as cron jobs. Every single evolution stage (introspection, research, issues, analysis, implementation, integration, upstream-sync, hydra) depends on cron sessions completing. When every cron job fails at the provider connection layer, the pipeline produces no output:
- Introspection: cannot analyze sessions or file issues
- Research: never written
- Issues: never filed
- Implementation: never started
- Integration: never attempted
This is a complete pipeline stall. The system is failing silently — the cron architecture logs error but there is no health check or alerting that surfaces a 100% failure rate.
Proposed direction
-
Diagnose the root cause: Does the DeepSeek API endpoint drop connections for short-lived sessions? Is there a connection-pool exhaustion or TLS renegotiation issue in the Hermes cron runner (e.g. no keepalive for frequent cron sessions)?
-
Add provider-level retry with exponential backoff for cron sessions: The current retry logic may not cover ReadError (broken pipe mid-response) — these are treated as terminal when they may be transient.
-
Add cron health monitoring: A simple script that checks whether the last N cron sessions completed with actual tool calls and non-error status. Surface the result to the evolution-health pipeline so a 100% failure rate is visible.
-
Consider a provider fallback per-cron: If deepseek-v4-flash is dropping connections, allow cron jobs to fall back to another configured provider/model before failing.
Value
- Impact: 1.0 (task impossible — entire evolution pipeline blocked)
- Effort: 0.5 (diagnosis + retry path + monitoring)
- Priority Score: 1.0 × 2 / 0.5 = 4.0
Problem (observed in real usage)
100% of cron-scheduled Hermes sessions in the last 7 days (18 of 18) terminated with provider-level connection errors before completing their scheduled task. 61% of these (11/18) died with ≤2 messages — the model never even emitted a single tool call.
Evidence (aggregated, anonymized)
ReadError(12/18, broken pipe mid-stream) andAPIConnectionError(6/18, timeout on connect)deepseek-v4-flash0b013aa0bd43(runs 4-8×/day — evolution introspection/analysis),332261ca5226(oracular dream — 2× failed),3fe172c3c437,c0d29b70d1f4,e0aa9a3d6252,e2864ae22932,39feda54b944failure_category: timeoutin error objectsImpact on real tasks
The entire evolution self-improvement pipeline runs as cron jobs. Every single evolution stage (introspection, research, issues, analysis, implementation, integration, upstream-sync, hydra) depends on cron sessions completing. When every cron job fails at the provider connection layer, the pipeline produces no output:
This is a complete pipeline stall. The system is failing silently — the cron architecture logs
errorbut there is no health check or alerting that surfaces a 100% failure rate.Proposed direction
Diagnose the root cause: Does the DeepSeek API endpoint drop connections for short-lived sessions? Is there a connection-pool exhaustion or TLS renegotiation issue in the Hermes cron runner (e.g. no keepalive for frequent cron sessions)?
Add provider-level retry with exponential backoff for cron sessions: The current retry logic may not cover
ReadError(broken pipe mid-response) — these are treated as terminal when they may be transient.Add cron health monitoring: A simple script that checks whether the last N cron sessions completed with actual tool calls and non-error status. Surface the result to the evolution-health pipeline so a 100% failure rate is visible.
Consider a provider fallback per-cron: If
deepseek-v4-flashis dropping connections, allow cron jobs to fall back to another configured provider/model before failing.Value