{"record":{"id":"c43f68f0781fe36c","repo":"NousResearch/hermes-agent","slug":"missing-required-animation-row-s-join-miss","errorCode":null,"errorMessage":"missing required animation row(s): {', '.join(missing_required)}","messagePattern":"missing required animation row\\(s\\): (.+?)","errorType":"exception","errorClass":"GenerationError","httpStatus":null,"severity":"error","filePath":"agent/pet/generate/orchestrate.py","lineNumber":336,"sourceCode":"        logger.warning(\"pet hatch %r: no running-right to mirror; left walk left empty\", slug)\n\n    # Idle is the resting state the renderer falls back to — guarantee it.\n    if not frames_by_state.get(\"idle\"):\n        progress(\"row\", \"idle-fallback\")\n        frames_by_state[\"idle\"] = [atlas.single_frame(base, fit=False)]\n\n    progress(\"compose\", \"\")\n    logger.info(\"pet hatch %r: composing atlas from %d states\", slug, len(frames_by_state))\n    # One shared scale + baseline across every state so the pet never slides or\n    # pulses size between frames; compose just packs the normalized cells.\n    sheet = atlas.compose_atlas(atlas.normalize_cells(frames_by_state))\n    validation = atlas.validate_atlas(sheet)\n    if not validation[\"ok\"]:\n        raise GenerationError(\"; \".join(validation[\"errors\"]) or \"atlas validation failed\")\n    filled_states = set(validation[\"filled_states\"])\n    missing_required = sorted(_REQUIRED_STATES - filled_states)\n    if missing_required:\n        raise GenerationError(f\"missing required animation row(s): {', '.join(missing_required)}\")\n    if len(filled_states) < _MIN_FILLED_STATES:\n        raise GenerationError(\n            f\"only {len(filled_states)}/{len(atlas.ROW_SPECS)} animation rows were usable; regenerate\"\n        )\n\n    from agent.pet import store\n\n    progress(\"save\", slug)\n    logger.info(\"pet hatch %r: saving pet\", slug)\n    pet = store.register_local_pet(\n        sheet,\n        slug=slug,\n        display_name=display_name or slug,\n        description=description,\n    )\n    return HatchResult(\n        slug=pet.slug,\n        display_name=pet.display_name,","sourceCodeStart":318,"sourceCodeEnd":354,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/pet/generate/orchestrate.py#L318-L354","documentation":"Error \"missing required animation row(s): {', '.join(missing_required)}\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/pet/generate/orchestrate.py:336 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Regenerate so all required animation rows are produced.","Adjust the prompt to explicitly include the missing animation states."],"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-15T22:17:37.221Z"}