Bug: OpenRouter model tencent/hy3-preview:free fails with API key not found error in WebUI
Environment
- hermes-webui (nesquena/hermes-webui)
- Hermes agent: nousresearch/hermes-agent (Docker)
- OPENROUTER_API_KEY correctly configured and confirmed present in container environment
Symptoms
Selecting Hy3 Preview (free) from the WebUI model dropdown produces:
Error: Provider 'openrouter:tencent/hy3-preview' is set in config.yaml but no API key was found.
Set the OPENROUTER:TENCENT/HY3-PREVIEW_API_KEY environment variable, or switch to a different
provider with hermes model.
The same model works correctly via Telegram gateway with the same OPENROUTER_API_KEY.
Root Cause
In api/config.py line 629, the hy3 model entry is missing the openrouter/ namespace prefix
that all other OpenRouter models use:
# Broken — missing openrouter/ prefix
{"provider": "OpenRouter", "id": "tencent/hy3-preview:free", "label": "Hy3 Preview (free)"},
# Other OpenRouter models correctly have the prefix
{"provider": "OpenRouter", "id": "openrouter/elephant-alpha", "label": "Elephant Alpha (free)"},
{"provider": "OpenRouter", "id": "openrouter/owl-alpha", "label": "Owl Alpha (free)"},
The routing logic in config.py line 1367 identifies OpenRouter models by checking for the
openrouter/ prefix:
if config_provider == "openrouter":
return model_id, "openrouter", config_base_url
Without the prefix, tencent/hy3-preview:free falls through to incorrect provider resolution,
producing the malformed openrouter:tencent/hy3-preview provider string which Hermes cannot
match to OPENROUTER_API_KEY.
Fix
Add the openrouter/ prefix to the hy3 model entry in api/config.py line 629:
# Fixed
{"provider": "OpenRouter", "id": "openrouter/tencent/hy3-preview:free", "label": "Hy3 Preview (free)"},
Notes
This is primarily an OpenRouter naming inconsistency — they published tencent/hy3-preview:free
without the standard openrouter/ namespace prefix used by their other free models. A more robust
fix would add a fallback in the routing logic to handle OpenRouter models that have
"provider": "OpenRouter" set but lack the openrouter/ id prefix.
Bug: OpenRouter model
tencent/hy3-preview:freefails with API key not found error in WebUIEnvironment
Symptoms
Selecting
Hy3 Preview (free)from the WebUI model dropdown produces:Error: Provider 'openrouter:tencent/hy3-preview' is set in config.yaml but no API key was found.
Set the OPENROUTER:TENCENT/HY3-PREVIEW_API_KEY environment variable, or switch to a different
provider with
hermes model.The same model works correctly via Telegram gateway with the same OPENROUTER_API_KEY.
Root Cause
In
api/config.pyline 629, the hy3 model entry is missing theopenrouter/namespace prefixthat all other OpenRouter models use:
The routing logic in
config.pyline 1367 identifies OpenRouter models by checking for theopenrouter/prefix:Without the prefix,
tencent/hy3-preview:freefalls through to incorrect provider resolution,producing the malformed
openrouter:tencent/hy3-previewprovider string which Hermes cannotmatch to
OPENROUTER_API_KEY.Fix
Add the
openrouter/prefix to the hy3 model entry inapi/config.pyline 629:Notes
This is primarily an OpenRouter naming inconsistency — they published
tencent/hy3-preview:freewithout the standard
openrouter/namespace prefix used by their other free models. A more robustfix would add a fallback in the routing logic to handle OpenRouter models that have
"provider": "OpenRouter"set but lack theopenrouter/id prefix.