NousResearch/hermes-agent · error · GenerationError

image generation produced no usable drafts

Error message

image generation produced no usable drafts

What it means

Error "image generation produced no usable drafts" thrown in NousResearch/hermes-agent.

Source

Thrown at agent/pet/generate/orchestrate.py:163

                break
            index, path, err = fut.result()
            if path is None:
                if err:
                    errors.append(err)
                continue
            results[index] = path
            if on_draft is not None:
                try:
                    on_draft(index, path)
                except Exception as exc:  # noqa: BLE001 - progress is best-effort
                    logger.debug("on_draft callback failed: %s", exc)

    drafts = [results[i] for i in sorted(results)]
    if not drafts and not cancelled():
        # Surface *why* — every draft failed for a reason (a content-policy refusal
        # on a name like "minion", a provider/auth error, …); the most common one
        # is the representative cause. Far more useful than "no usable drafts".
        raise GenerationError(_drafts_failed_reason(errors))
    return drafts


def _drafts_failed_reason(errors: list[str]) -> str:
    """The representative reason a draft round produced nothing, humanized."""
    if not errors:
        return "image generation produced no usable drafts"
    from collections import Counter

    return _humanize_image_error(Counter(errors).most_common(1)[0][0])


def _humanize_image_error(error: str) -> str:
    """Turn a raw provider error into a friendly, actionable sentence.

    The big one is moderation: image models refuse trademarked characters and
    real people (e.g. "minion"), which reads as an opaque 400 otherwise.
    """

View on GitHub (pinned to c896c09c42)

Solutions

  1. Regenerate; none of the drafts passed validation.
  2. Adjust the prompt/reference image so drafts meet the atlas requirements.
  3. Check the image backend output for malformed or empty images.

When it happens

Trigger: Thrown at agent/pet/generate/orchestrate.py:163 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/d39ec08b598e32f7. Report an issue: GitHub.