{"record":{"id":"95d9e2c7ae68b585","repo":"microsoft/autogen","slug":"invalid-chatresponsemessage","errorCode":null,"errorMessage":"Invalid ChatResponseMessage","messagePattern":"Invalid ChatResponseMessage","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs","lineNumber":160,"sourceCode":"        {\n            var functionToolCalls = chatResponseMessage.ToolCalls\n                .Where(tc => tc is ChatCompletionsFunctionToolCall)\n                .Select(tc => (ChatCompletionsFunctionToolCall)tc);\n\n            var toolCalls = functionToolCalls.Select(tc => new ToolCall(tc.Name, tc.Arguments) { ToolCallId = tc.Id });\n\n            return new ToolCallMessage(toolCalls, from)\n            {\n                Content = textContent,\n            };\n        }\n\n        if (textContent is string content && !string.IsNullOrEmpty(content))\n        {\n            return new TextMessage(Role.Assistant, content, from);\n        }\n\n        throw new InvalidOperationException(\"Invalid ChatResponseMessage\");\n    }\n\n    public IEnumerable<IMessage> ProcessIncomingMessages(IAgent agent, IEnumerable<IMessage> messages)\n    {\n        return messages.SelectMany<IMessage, IMessage>(m =>\n        {\n            if (m is IMessage<ChatRequestMessage> crm)\n            {\n                return [crm];\n            }\n            else\n            {\n                var chatRequestMessages = m switch\n                {\n                    TextMessage textMessage => ProcessTextMessage(agent, textMessage),\n                    ImageMessage imageMessage when (imageMessage.From is null || imageMessage.From != agent.Name) => ProcessImageMessage(agent, imageMessage),\n                    MultiModalMessage multiModalMessage when (multiModalMessage.From is null || multiModalMessage.From != agent.Name) => ProcessMultiModalMessage(agent, multiModalMessage),\n                    ToolCallMessage toolCallMessage when (toolCallMessage.From is null || toolCallMessage.From == agent.Name) => ProcessToolCallMessage(agent, toolCallMessage),","sourceCodeStart":142,"sourceCodeEnd":178,"githubUrl":"https://github.com/microsoft/autogen/blob/027ecf0a379bcc1d09956d46d12d44a3ad9cee14/dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs#L142-L178","documentation":"Error \"Invalid ChatResponseMessage\" thrown in microsoft/autogen.","triggerScenarios":"Thrown at dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs:160 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the model returned a valid choice with content"],"exampleFix":"Guard against empty Choices and null Content before converting","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"027ecf0a379bcc1d09956d46d12d44a3ad9cee14","analyzedAt":"2026-08-15T03:38:00.719Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}