{"record":{"id":"ae97e1c4ab69a0de","repo":"microsoft/semantic-kernel","slug":"function-call-is-expected-but-not-found-in-the-res","errorCode":null,"errorMessage":"Function call is expected but not found in the response.","messagePattern":"Function call is expected but not found in the response\\.","errorType":"exception","errorClass":"AgentInvokeException","httpStatus":null,"severity":"error","filePath":"python/semantic_kernel/agents/bedrock/bedrock_agent.py","lineNumber":577,"sourceCode":"            role=AuthorRole.ASSISTANT,\n            content=completion,\n            name=self.name,\n            inner_content=event,\n            ai_model_id=self.agent_model.foundation_model,\n            metadata=chunk,\n        )\n\n    async def _handle_return_control_event(\n        self,\n        event: dict[str, Any],\n        kernel: Kernel,\n        kernel_arguments: KernelArguments,\n    ) -> dict[str, Any]:\n        \"\"\"Handle return control event.\"\"\"\n        return_control_payload = event[BedrockAgentEventType.RETURN_CONTROL]\n        function_calls = parse_return_control_payload(return_control_payload)\n        if not function_calls:\n            raise AgentInvokeException(\"Function call is expected but not found in the response.\")\n\n        function_result_contents = await self._handle_function_call_contents(function_calls)\n\n        return {\n            \"invocationId\": function_calls[0].id,\n            \"returnControlInvocationResults\": parse_function_result_contents(function_result_contents),\n        }\n\n    def _handle_files_event(self, event: dict[str, Any]) -> list[BinaryContent]:\n        \"\"\"Handle file event.\"\"\"\n        files_event = event[BedrockAgentEventType.FILES]\n        return [\n            BinaryContent(\n                data=file[\"bytes\"],\n                data_format=\"base64\",\n                mime_type=file[\"type\"],\n                metadata={\"name\": self._sanitize_filename(file[\"name\"])},\n            )","sourceCodeStart":559,"sourceCodeEnd":595,"githubUrl":"https://github.com/microsoft/semantic-kernel/blob/c028a0c7dc4f0814cdcbaba9d998f187a41197bf/python/semantic_kernel/agents/bedrock/bedrock_agent.py#L559-L595","documentation":"Raised by _handle_return_control_event when parse_return_control_payload returns an empty list. parse_return_control_payload iterates over return_control_payload.get('invocationInputs', []); if invocationInputs is missing or empty, no FunctionCallContent objects are produced, yet the event was classified as a RETURN_CONTROL event, which is contradictory.","triggerScenarios":"Triggered when an event contains a 'returnControl' key but its payload has no 'invocationInputs' (or an empty list), so parse_return_control_payload yields [].","commonSituations":"The Bedrock service sent a malformed or empty RETURN_CONTROL event; the agent's action group/function schema is misconfigured so no function invocation input is included; an API version mismatch changes the payload shape; a race condition or partial response.","solutions":["Inspect the raw return_control_payload event to verify whether invocationInputs is present and populated.","Verify the kernel function action group was created successfully and the function schema is registered with the agent.","Re-create the agent's action group via create_kernel_function_action_group to ensure the schema is attached.","If the issue is transient, retry the invocation; if persistent, check the Bedrock agent configuration in the AWS console."],"exampleFix":"// before\n# event = {'returnControl': {'invocationId': 'x', 'invocationInputs': []}}\n# -> raises Function call is expected but not found\n\n// after\n# Debug before raising:\nraw = await agent._invoke_agent(thread.id, \"test\")\nfor ev in raw.get('completion', []):\n    if 'returnControl' in ev:\n        print(ev['returnControl'].get('invocationInputs'))  # inspect\n# Then re-create the action group to fix schema registration","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"from semantic_kernel.exceptions.agent_exceptions import AgentInvokeException\n\ntry:\n    resp = await agent.get_response(message=msg, thread=thread)\nexcept AgentInvokeException as e:\n    if \"Function call is expected but not found\" in str(e):\n        # re-create the action group to ensure function schema is registered\n        await agent.create_kernel_function_action_group()\n        resp = await agent.get_response(message=msg, thread=thread)\n    else:\n        raise","preventionTips":["Ensure create_kernel_function_action_group succeeded so the function schema is registered with the Bedrock agent.","Inspect RETURN_CONTROL payloads during development to confirm invocationInputs are populated.","Re-prepare the agent after changing action groups."],"tags":["bedrock","function-calling","return-control","response-parsing","empty-payload"],"backgroundTag":null,"analyzedSha":"c028a0c7dc4f0814cdcbaba9d998f187a41197bf","analyzedAt":"2026-08-13T13:48:05.040Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}