{"record":{"id":"8f1783427cfa8ab3","repo":"NousResearch/hermes-agent","slug":"invalid-content-part","errorCode":"invalid_content_part","errorMessage":"invalid_content_part:Image detail must be a non-empty string when provided.","messagePattern":"invalid_content_part:Image detail must be a non-empty string when provided\\.","errorType":"validation","errorClass":"ValueError","httpStatus":400,"severity":"error","filePath":"gateway/platforms/api_server.py","lineNumber":639,"sourceCode":"                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, \"\n                \"but uploaded files and document inputs are not supported on this endpoint.\"\n            )\n\n        # Unknown part type — reject explicitly so clients get a clear error\n        # instead of a silently dropped turn.\n        raise ValueError(\n            f\"unsupported_content_type:Unsupported content part type {raw_type!r}. \"\n            \"Only text and image_url/input_image parts are supported.\"\n        )\n\n    if not normalized_parts:","sourceCodeStart":621,"sourceCodeEnd":657,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/gateway/platforms/api_server.py#L621-L657","documentation":"Error \"invalid_content_part:Image detail must be a non-empty string when provided.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at gateway/platforms/api_server.py:639 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a non-empty detail string on image parts, or omit the detail field."],"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"}