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

  1. Register the task key from the plugin via ctx.register_auxiliary_task() before using it.
  2. 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.