@@ -256,6 +256,7 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
256256 """Format messages for Bedrock API compatibility.
257257
258258 This function ensures messages conform to Bedrock's expected format by:
259+ - Filtering out SDK_UNKNOWN_MEMBER content blocks
259260 - Cleaning tool result content blocks by removing additional fields that may be
260261 useful for retaining information in hooks but would cause Bedrock validation
261262 exceptions when presented with unexpected fields
@@ -273,11 +274,17 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
273274 https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ToolResultBlock.html
274275 """
275276 cleaned_messages = []
277+ filtered_unknown_members = False
276278
277279 for message in messages :
278280 cleaned_content : list [ContentBlock ] = []
279281
280282 for content_block in message ["content" ]:
283+ # Filter out SDK_UNKNOWN_MEMBER content blocks
284+ if "SDK_UNKNOWN_MEMBER" in content_block :
285+ filtered_unknown_members = True
286+ continue
287+
281288 if "toolResult" in content_block :
282289 # Create a new content block with only the cleaned toolResult
283290 tool_result : ToolResult = content_block ["toolResult" ]
@@ -297,6 +304,11 @@ def _format_bedrock_messages(self, messages: Messages) -> Messages:
297304 cleaned_message : Message = Message (content = cleaned_content , role = message ["role" ])
298305 cleaned_messages .append (cleaned_message )
299306
307+ if filtered_unknown_members :
308+ logger .warning (
309+ "Filtered out SDK_UNKNOWN_MEMBER content blocks from messages, consider upgrading boto3 version"
310+ )
311+
300312 return cleaned_messages
301313
302314 def _has_blocked_guardrail (self , guardrail_data : dict [str , Any ]) -> bool :
0 commit comments