diff --git a/pinecone/openapi_support/api_client.py b/pinecone/openapi_support/api_client.py index afd6b96c..c716a248 100644 --- a/pinecone/openapi_support/api_client.py +++ b/pinecone/openapi_support/api_client.py @@ -212,9 +212,11 @@ def __call_api( response_info = extract_response_info(headers) if isinstance(return_data, dict): return_data["_response_info"] = response_info - else: + elif hasattr(return_data, "__dict__"): # Dynamic attribute assignment on OpenAPI models setattr(return_data, "_response_info", response_info) + # Primitive types (str, int, float, bool) do not support + # attribute assignment, so response_info is silently skipped. if _return_http_data_only: return return_data diff --git a/pinecone/openapi_support/asyncio_api_client.py b/pinecone/openapi_support/asyncio_api_client.py index 58a3a869..fa03e770 100644 --- a/pinecone/openapi_support/asyncio_api_client.py +++ b/pinecone/openapi_support/asyncio_api_client.py @@ -177,9 +177,11 @@ async def __call_api( response_info = extract_response_info(headers) if isinstance(return_data, dict): return_data["_response_info"] = response_info - else: + elif hasattr(return_data, "__dict__"): # Dynamic attribute assignment on OpenAPI models setattr(return_data, "_response_info", response_info) + # Primitive types (str, int, float, bool) do not support + # attribute assignment, so response_info is silently skipped. if _return_http_data_only: return return_data