{"record":{"id":"4a9273754a818111","repo":"NousResearch/hermes-agent","slug":"register-of-generated-pet-slug-did-not-produce","errorCode":null,"errorMessage":"register of generated pet '{slug}' did not produce a spritesheet","messagePattern":"register of generated pet '(.+?)' did not produce a spritesheet","errorType":"exception","errorClass":"PetStoreError","httpStatus":null,"severity":"error","filePath":"agent/pet/store.py","lineNumber":274,"sourceCode":"    directory.mkdir(parents=True, exist_ok=True)\n    sprite_path = directory / \"spritesheet.webp\"\n    try:\n        _write_spritesheet(spritesheet, sprite_path)\n    except Exception as exc:  # noqa: BLE001 - normalize to one error type\n        raise PetStoreError(f\"could not write spritesheet for '{slug}': {exc}\") from exc\n\n    meta = {\n        \"id\": slug,\n        \"displayName\": display_name or slug,\n        \"description\": description or \"\",\n        \"spritesheetPath\": sprite_path.name,\n        \"createdBy\": \"generator\",\n    }\n    (directory / \"pet.json\").write_text(json.dumps(meta, indent=2), encoding=\"utf-8\")\n\n    pet = load_pet(slug)\n    if pet is None or not pet.exists:\n        raise PetStoreError(f\"register of generated pet '{slug}' did not produce a spritesheet\")\n    return pet\n\n\ndef export_pet(slug: str) -> tuple[str, bytes]:\n    \"\"\"Zip an installed pet's folder (pet.json + spritesheet) → (filename, bytes).\n\n    Dotfiles (cached thumbs, backups) are skipped so the archive is a clean,\n    re-importable pet package. Raises :class:`PetStoreError` if not installed.\n    \"\"\"\n    import io\n    import zipfile\n\n    root = pets_dir()\n    directory = root / slug.strip()\n    # Guard against traversal: the target must be a direct child of pets_dir.\n    if directory.resolve().parent != root.resolve() or not directory.is_dir():\n        raise PetStoreError(f\"pet '{slug}' is not installed\")\n","sourceCodeStart":256,"sourceCodeEnd":292,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/pet/store.py#L256-L292","documentation":"Error \"register of generated pet '{slug}' did not produce a spritesheet\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/pet/store.py:274 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the register step; the spritesheet write failed.","Verify the generated spritesheet exists and the store directory is writable."],"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"}