{"record":{"id":"9f620471a9cb0ecd","repo":"microsoft/autogen","slug":"toolcallmessage-is-not-supported-when-message-from","errorCode":null,"errorMessage":"ToolCallMessage is not supported when message.From is not the same with agent","messagePattern":"ToolCallMessage is not supported when message\\.From is not the same with agent","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs","lineNumber":261,"sourceCode":"            ImageMessage image => this.CreateChatMessageImageContentItemFromImageMessage(image),\n            _ => throw new NotImplementedException(),\n        });\n\n        return [new ChatRequestUserMessage(items)];\n    }\n\n    private ChatMessageImageContentItem CreateChatMessageImageContentItemFromImageMessage(ImageMessage message)\n    {\n        return message.Data is null && message.Url is not null\n            ? new ChatMessageImageContentItem(new Uri(message.Url))\n            : new ChatMessageImageContentItem(message.Data, message.Data?.MediaType);\n    }\n\n    private IEnumerable<ChatRequestMessage> ProcessToolCallMessage(IAgent agent, ToolCallMessage message)\n    {\n        if (message.From is not null && message.From != agent.Name)\n        {\n            throw new ArgumentException(\"ToolCallMessage is not supported when message.From is not the same with agent\");\n        }\n\n        var toolCall = message.ToolCalls.Select((tc, i) => new ChatCompletionsFunctionToolCall(tc.ToolCallId ?? $\"{tc.FunctionName}_{i}\", tc.FunctionName, tc.FunctionArguments));\n        var textContent = message.GetContent() ?? string.Empty;\n        var chatRequestMessage = new ChatRequestAssistantMessage() { Content = textContent };\n        foreach (var tc in toolCall)\n        {\n            chatRequestMessage.ToolCalls.Add(tc);\n        }\n\n        return [chatRequestMessage];\n    }\n\n    private IEnumerable<ChatRequestMessage> ProcessToolCallResultMessage(ToolCallResultMessage message)\n    {\n        return message.ToolCalls\n            .Where(tc => tc.Result is not null)\n            .Select((tc, i) => new ChatRequestToolMessage(tc.Result, tc.ToolCallId ?? $\"{tc.FunctionName}_{i}\"));","sourceCodeStart":243,"sourceCodeEnd":279,"githubUrl":"https://github.com/microsoft/autogen/blob/027ecf0a379bcc1d09956d46d12d44a3ad9cee14/dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs#L243-L279","documentation":"Error \"ToolCallMessage is not supported when message.From is not the same with agent\" thrown in microsoft/autogen.","triggerScenarios":"Thrown at dotnet/src/AutoGen.AzureAIInference/Middleware/AzureAIInferenceChatRequestMessageConnector.cs:261 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Tool calls must originate from this agent's own replies"],"exampleFix":"Filter out foreign ToolCallMessages or convert them to text","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"}