{"record":{"id":"74f7398587a9388b","repo":"NousResearch/hermes-agent","slug":"could-not-fetch-petdex-manifest-exc","errorCode":null,"errorMessage":"could not fetch petdex manifest: {exc}","messagePattern":"could not fetch petdex manifest: (.+?)","errorType":"exception","errorClass":"ManifestError","httpStatus":null,"severity":"error","filePath":"agent/pet/manifest.py","lineNumber":141,"sourceCode":"    if not force and _cache is not None and time.monotonic() - _cache[0] < _MANIFEST_TTL:\n        return _cache[1]\n\n    try:\n        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:","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/pet/manifest.py#L123-L159","documentation":"Error \"could not fetch petdex manifest: {exc}\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/pet/manifest.py:141 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check network access to the petdex manifest host and retry.","Retry later if the manifest host is down."],"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"}