{"record":{"id":"36e6e11b633456bd","repo":"NousResearch/hermes-agent","slug":"unsupported-content-type","errorCode":"unsupported_content_type","errorMessage":"unsupported_content_type:Only image data URLs are supported. Non-image data payloads are not supported.","messagePattern":"unsupported_content_type:Only image data URLs are supported\\. Non-image data payloads are not supported\\.","errorType":"validation","errorClass":"ValueError","httpStatus":400,"severity":"error","filePath":"gateway/platforms/api_server.py","lineNumber":628,"sourceCode":"\n        if part_type in _IMAGE_PART_TYPES:\n            detail = part.get(\"detail\")\n            image_ref = part.get(\"image_url\")\n            # OpenAI Responses sends ``input_image`` with a top-level\n            # ``image_url`` string; Chat Completions sends ``image_url`` as\n            # ``{\"url\": \"...\", \"detail\": \"...\"}``.  Support both.\n            if isinstance(image_ref, dict):\n                url_value = image_ref.get(\"url\")\n                detail = image_ref.get(\"detail\", detail)\n            else:\n                url_value = image_ref\n            if not isinstance(url_value, str) or not url_value.strip():\n                raise ValueError(\"invalid_image_url:Image parts must include a non-empty image URL.\")\n            url_value = url_value.strip()\n            lowered = url_value.lower()\n            if lowered.startswith(\"data:\"):\n                if not lowered.startswith(\"data:image/\") or \",\" not in url_value:\n                    raise ValueError(\n                        \"unsupported_content_type:Only image data URLs are supported. \"\n                        \"Non-image data payloads are not supported.\"\n                    )\n            elif not (lowered.startswith(\"http://\") or lowered.startswith(\"https://\")):\n                raise ValueError(\n                    \"invalid_image_url:Image inputs must use http(s) URLs or data:image/... URLs.\"\n                )\n            image_part: Dict[str, Any] = {\"type\": \"image_url\", \"image_url\": {\"url\": url_value}}\n            if detail is not None:\n                if not isinstance(detail, str) or not detail.strip():\n                    raise ValueError(\"invalid_content_part:Image detail must be a non-empty string when provided.\")\n                image_part[\"image_url\"][\"detail\"] = detail.strip()\n            normalized_parts.append(image_part)\n            continue\n\n        if part_type in _FILE_PART_TYPES:\n            raise ValueError(\n                \"unsupported_content_type:Inline image inputs are supported, \"","sourceCodeStart":610,"sourceCodeEnd":646,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/gateway/platforms/api_server.py#L610-L646","documentation":"Error \"unsupported_content_type:Only image data URLs are supported. Non-image data payloads are not supported.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at gateway/platforms/api_server.py:628 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Send image parts as image data URLs only; remove non-image data payloads from content parts."],"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"}