NousResearch/hermes-agent · error · GenerationError
only {len(filled_states)}/{len(atlas.ROW_SPECS)} animation r
Error message
only {len(filled_states)}/{len(atlas.ROW_SPECS)} animation rows were usable; regenerate What it means
Error "only {len(filled_states)}/{len(atlas.ROW_SPECS)} animation rows were usable; regenerate" thrown in NousResearch/hermes-agent.
Source
Thrown at agent/pet/generate/orchestrate.py:338
# Idle is the resting state the renderer falls back to — guarantee it.
if not frames_by_state.get("idle"):
progress("row", "idle-fallback")
frames_by_state["idle"] = [atlas.single_frame(base, fit=False)]
progress("compose", "")
logger.info("pet hatch %r: composing atlas from %d states", slug, len(frames_by_state))
# One shared scale + baseline across every state so the pet never slides or
# pulses size between frames; compose just packs the normalized cells.
sheet = atlas.compose_atlas(atlas.normalize_cells(frames_by_state))
validation = atlas.validate_atlas(sheet)
if not validation["ok"]:
raise GenerationError("; ".join(validation["errors"]) or "atlas validation failed")
filled_states = set(validation["filled_states"])
missing_required = sorted(_REQUIRED_STATES - filled_states)
if missing_required:
raise GenerationError(f"missing required animation row(s): {', '.join(missing_required)}")
if len(filled_states) < _MIN_FILLED_STATES:
raise GenerationError(
f"only {len(filled_states)}/{len(atlas.ROW_SPECS)} animation rows were usable; regenerate"
)
from agent.pet import store
progress("save", slug)
logger.info("pet hatch %r: saving pet", slug)
pet = store.register_local_pet(
sheet,
slug=slug,
display_name=display_name or slug,
description=description,
)
return HatchResult(
slug=pet.slug,
display_name=pet.display_name,
spritesheet=pet.spritesheet,
states=validation["filled_states"],View on GitHub (pinned to c896c09c42)
Solutions
- Regenerate; too few animation rows were usable.
- Improve the reference image/prompt so more rows pass validation.
- Retry with a different image backend if rows keep failing.
When it happens
Trigger: Thrown at agent/pet/generate/orchestrate.py:338 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/6f059a67b0312182.
Report an issue: GitHub.