{"record":{"id":"d0309b53bebe34a2","repo":"NousResearch/hermes-agent","slug":"pet-generation-needs-an-image-backend-that-support","errorCode":null,"errorMessage":"Pet generation needs an image backend that supports reference images. Open `hermes tools` → Image Generation and configure Nous Portal, OpenRouter, or OpenAI (gpt-image-2) with an API key.","messagePattern":"Pet generation needs an image backend that supports reference images\\. Open `hermes tools` → Image Generation and configure Nous Portal, OpenRouter, or OpenAI \\(gpt-image-2\\) with an API key\\.","errorType":"exception","errorClass":"GenerationError","httpStatus":null,"severity":"error","filePath":"agent/pet/generate/imagegen.py","lineNumber":122,"sourceCode":"    except Exception:  # noqa: BLE001\n        active = None\n    if active is not None:\n        name = getattr(active, \"name\", \"\")\n        if name in _REF_CAPABLE and active.is_available():\n            return SpriteProvider(name=name, provider=active, supports_references=True)\n\n    # Any available reference-capable provider.\n    for name in _REF_CAPABLE:\n        provider = get_provider(name)\n        if provider is not None and provider.is_available():\n            return SpriteProvider(name=name, provider=provider, supports_references=True)\n\n    if not require_references and active is not None and active.is_available():\n        return SpriteProvider(\n            name=getattr(active, \"name\", \"unknown\"), provider=active, supports_references=False\n        )\n\n    raise GenerationError(\n        \"Pet generation needs an image backend that supports reference images. \"\n        \"Open `hermes tools` → Image Generation and configure Nous Portal, \"\n        \"OpenRouter, or OpenAI (gpt-image-2) with an API key.\"\n    )\n\n\ndef list_sprite_providers() -> list[dict]:\n    \"\"\"The reference-capable providers available to pick for pet generation.\n\n    Returns ``[{name, label, default}]`` for every ref-capable provider the user\n    actually has credentials for, in preference order, marking the one\n    :func:`resolve_provider` would choose with no explicit preference. Empty when\n    none is configured (the picker hides itself). Best-effort: discovery hiccups\n    yield an empty list.\n    \"\"\"\n    _discover()\n    from agent.image_gen_registry import get_provider\n","sourceCodeStart":104,"sourceCodeEnd":140,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/pet/generate/imagegen.py#L104-L140","documentation":"Error \"Pet generation needs an image backend that supports reference images. Open `hermes tools` → Image Generation and configure Nous Portal, OpenRouter, or OpenAI (gpt-image-2) with an API key.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/pet/generate/imagegen.py:122 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Configure a reference-image-capable backend (Nous Portal, OpenRouter, or OpenAI gpt-image-2) in `hermes tools` → Image Generation with an API key."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}