NousResearch/hermes-agent · error · PluginLlmTrustError
Plugin {plugin_id!r} cannot route through auxiliary task {ta
Error message
Plugin {plugin_id!r} cannot route through auxiliary task {task!r} — a plugin may only pass a task key it registered itself via ctx.register_auxiliary_task() (or a built-in key when plugins.entries.{plugin_id}.llm.allow_task_override is true). What it means
Error "Plugin {plugin_id!r} cannot route through auxiliary task {task!r} — a plugin may only pass a task key it registered itself via ctx.register_auxiliary_task() (or a built-in key when plugins.entries.{plugin_id}.llm.allow_task_override is true)." thrown in NousResearch/hermes-agent.
Source
Thrown at agent/plugin_llm.py:435
logger.warning(
"plugin_llm task routing denied: plugin %r requested built-in "
"auxiliary task %r without plugins.entries.%s.llm.allow_task_override",
plugin_id,
task,
plugin_id,
)
raise PluginLlmTrustError(
f"Plugin {plugin_id!r} cannot route through the built-in auxiliary "
f"task {task!r} (set plugins.entries.{plugin_id}.llm."
f"allow_task_override to true to allow)."
)
logger.warning(
"plugin_llm task routing denied: plugin %r requested auxiliary task %r "
"it did not register",
plugin_id,
task,
)
raise PluginLlmTrustError(
f"Plugin {plugin_id!r} cannot route through auxiliary task {task!r} — a "
f"plugin may only pass a task key it registered itself via "
f"ctx.register_auxiliary_task() (or a built-in key when plugins.entries."
f"{plugin_id}.llm.allow_task_override is true)."
)
# ---------------------------------------------------------------------------
# Input normalization
# ---------------------------------------------------------------------------
def _normalize_input_block(block: PluginLlmInput) -> Dict[str, Any]:
"""Coerce a structured input block to a plain dict the message
builder understands. Unknown shapes raise ``ValueError``."""
if isinstance(block, PluginLlmTextInput):
return {"type": "text", "text": block.text}
if isinstance(block, PluginLlmImageInput):View on GitHub (pinned to c896c09c42)
Solutions
- Register the task key from the plugin via ctx.register_auxiliary_task() before using it.
- Enable plugins.entries.<plugin>.llm.allow_task_override if routing to a built-in task is intended.
When it happens
Trigger: Thrown at agent/plugin_llm.py:435 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/f7628addfe9b6cf9.
Report an issue: GitHub.