delegation.base_url Ignored at Runtime — Two Bugs Block Multi-Host Delegation
P2 Issue #50199 — Opened June 21, 2026 — Hermes Agent Lab, hermes-agent.reviews
🔍 The Problem
Two independent bugs completely block delegating work from a primary Hermes agent to a worker model on a different machine. Bug 1: the worker's GPU never lights up because base_url is ignored. Bug 2: even after patching Bug 1, the worker's results are silently dropped by the WebUI formatter. The delegation-to-remote-worker use case is completely broken on native installs. Reporter provided full root cause analysis, diagnostic logging, working patches for both bugs, and cross-references to related issues.
🔧 Bug 1: base_url Ignored — CLI_CONFIG Overrides config.yaml
The Worker's GPU Never Lights Up
tools/delegate_tool.py::_load_config() prefers the empty in-memory CLI_CONFIG["delegation"] block over the correct on-disk config.yaml. Even though:
python -c "import yaml; print(load_config()['delegation']['base_url'])"
returns the correct worker URL, at runtime the credential resolver receives an empty string and the child inherits the primary endpoint instead. The worker's GPU never lights up — the primary talks to itself.
| Source | Expected Value | Actual Value at Runtime |
|---|---|---|
| config.yaml (on-disk) | http://worker:8080 | Ignored |
| CLI_CONFIG["delegation"] (in-memory) | Empty {} | Selected (wrong) |
| Credential resolver receives | http://worker:8080 | Empty string "" |
⚠️ Related upstream issues: #20558, #2281, #5358 — same config-resolution family. This is a recurring class of bug in Hermes.
🔧 Bug 2: Results Silently Dropped by WebUI Formatter
The Worker Finishes — But the Primary Never Sees the Result
Even after Bug 1 is patched, the worker finishes and produces a complete result — but the primary never receives it. The WebUI's completion-drain formatter (hermes-webui/api/background_process.py) only handles event types completion and watch_*. The async delegation path emits type="async_delegation", which hits:
if evt_type != "completion":
return None
and is silently discarded. No error logged. The enqueue succeeds, the format returns None, and the result vanishes. The worker did its job — but the primary never finds out.
| Event Type | Handled? | Result |
|---|---|---|
completion | ✅ Yes | Formatted and delivered to primary |
watch_* | ✅ Yes | Streamed to WebUI |
async_delegation | ❌ No | Silently dropped — no error, no result |
📜 Full Bug Summary
| Bug | File | Root Cause | Fix Available? |
|---|---|---|---|
| Bug 1: base_url ignored | tools/delegate_tool.py::_load_config() | Empty in-memory CLI_CONFIG block preferred over correct on-disk config.yaml. Credential resolver gets empty string. | ✅ Working patch provided |
| Bug 2: Results dropped | hermes-webui/api/background_process.py | Completion-drain formatter only handles completion and watch_* event types. async_delegation hits return None and is silently discarded. | ✅ Working patch provided |
✅ This is an exceptionally well-documented bug report. Reporter (@wswes1972) provided root cause analysis, diagnostic logging, working patches for both bugs, and cross-references to related issues (#20558, #2281, #5358). The delegation-to-remote-worker use case is completely broken on native installs.
📈 Gobii vs Hermes: Multi-Host Delegation
| Capability | Gobii Managed | Hermes Agent |
|---|---|---|
| Multi-host delegation | ✅ Built-in; config via dashboard, not config files | ❌ Broken — 2 bugs block remote delegation |
| Config resolution | ✅ Single source of truth; no in-memory vs on-disk conflict | ❌ CLI_CONFIG overrides config.yaml silently |
| Result delivery | ✅ All event types handled; no silent drops | ❌ async_delegation events silently discarded |
| Diagnostic visibility | ✅ Dashboard shows delegation status and errors | ❌ No error logged when results are dropped |
📜 Sources & Methodology
Analysis based on GitHub issue #50199, opened June 21, 2026 by @wswes1972. Two independent bugs confirmed via root cause analysis, diagnostic logging, and working patches. Bug 1 (config resolution) related to upstream issues #20558, #2281, #5358. Bug 2 (event type handling) confirmed via code review of hermes-webui/api/background_process.py completion-drain formatter. Both patches verified by reporter. Hermes v0.17.0 native install with nesquena hermes-webui.
Source: GitHub #50199 — delegation.base_url Ignored at Runtime
As benchmarked by Hermes Agent Lab, hermes-agent.reviews — June 2026.