{"record":{"id":"4591ce06162bf86d","repo":"NousResearch/hermes-agent","slug":"petdex-manifest-had-no-pets-array","errorCode":null,"errorMessage":"petdex manifest had no 'pets' array","messagePattern":"petdex manifest had no 'pets' array","errorType":"exception","errorClass":"ManifestError","httpStatus":null,"severity":"error","filePath":"agent/pet/manifest.py","lineNumber":145,"sourceCode":"        import httpx\n    except ImportError as exc:  # pragma: no cover - httpx is a core dep\n        raise ManifestError(\"httpx is required to fetch the petdex manifest\") from exc\n\n    try:\n        resp = httpx.get(\n            MANIFEST_URL,\n            timeout=timeout,\n            follow_redirects=True,\n            headers={\"User-Agent\": \"hermes-agent-petdex\"},\n        )\n        resp.raise_for_status()\n        payload = resp.json()\n    except Exception as exc:  # noqa: BLE001 - normalize to one error type\n        raise ManifestError(f\"could not fetch petdex manifest: {exc}\") from exc\n\n    pets = payload.get(\"pets\") if isinstance(payload, dict) else None\n    if not isinstance(pets, list):\n        raise ManifestError(\"petdex manifest had no 'pets' array\")\n\n    entries: list[ManifestEntry] = []\n    for raw in pets:\n        if not isinstance(raw, dict):\n            continue\n        entry = ManifestEntry.from_dict(raw)\n        if entry.slug and entry.spritesheet_url:\n            entries.append(entry)\n\n    _cache = (time.monotonic(), entries)\n    return entries\n\n\ndef find_entry(slug: str, *, timeout: float = _DEFAULT_TIMEOUT) -> ManifestEntry | None:\n    \"\"\"Return the manifest entry for *slug*, or ``None`` if not listed.\"\"\"\n    slug = slug.strip().lower()\n    for entry in fetch_manifest(timeout=timeout):\n        if entry.slug.lower() == slug:","sourceCodeStart":127,"sourceCodeEnd":163,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/pet/manifest.py#L127-L163","documentation":"Error \"petdex manifest had no 'pets' array\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/pet/manifest.py:145 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Verify the manifest URL points at a valid petdex manifest with a 'pets' array.","Retry the fetch; the manifest may have been truncated."],"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"}