Why is my Copilot agent returning explanation_of_tool_call JSON instead of topic responses?

Anonymous
2025-10-07T12:19:17.7133333+00:00

Hi everyone,

The agent was working fine this morning. However, when I started exploring topic outputs in a structured format—for example, scenarios like meeting prep and company overview—the responses stopped returning the expected topic text.

Instead of the topic response, I’m seeing outputs like:

{"explanation_of_tool_call":"This action needs to be done to acknowledge the user's greeting and initiate the conversation in a polite and professional manner."}

Here’s my setup:

OnRecognizedIntent triggers for greetings.

SetProperty nodes to store topic responses in dialog.topicResponse.

SendActivity nodes referencing these stored responses.

Optional tool/function nodes that return internal metadata like explanation_of_tool_call.

My questions for the community:

Has anyone seen fallback responses appear like this after trying to structure topic outputs in Copilot Studio?

What’s the best way to map a tool or lookup output to a user-facing property without sending internal metadata?

Are there known issues with multi-line expressions or YAML parsing in SetProperty that can cause fallbacks?

I’d appreciate any guidance, examples, or best practices for structuring topic outputs without triggering these fallback responses.

Thanks, Kabilan

Microsoft Copilot | Other

2 answers

Sort by: Most helpful
  1. Karan Shewale 2,585 Reputation points Microsoft External Staff
    2025-10-10T04:47:35.59+00:00

    Hi Kabilan Rajendiran,

    The “explanation_of_tool_call” output appears when Copilot Studio accidentally returns internal reasoning metadata instead of the intended topic response. This usually happens when the tool or function node returns its raw output object instead of the actual text meant for the user. To fix this, ensure that your topic stores only the readable text (for example, dialog.topicResponse = toolResult.responseText) and that your SendActivity node references this text variable directly, not the entire object. Also, double-check your YAML or structured authoring syntax — indentation or variable mapping issues can cause the system to fall back to this JSON response. This behavior started after the October 2025 Copilot Studio update, which changed how structured tool calls are parsed.

    For more details, refer to:

    Use variables and expressions in Copilot Studio

    Create and manage topics in Copilot Studio

    Use actions and connectors safely

    Thank you.

    Karan Shewale.

    If this response resolves your issue, please accept the answer and, if helpful, click the “Upvote” button. Your feedback helps us improve and assist others more effectively.

    Was this answer helpful?

    1 person found this answer helpful.

  2. Deleted

    This answer has been deleted due to a violation of our Code of Conduct. The answer was manually reported or identified through automated detection before action was taken. Please refer to our Code of Conduct for more information.


    Comments have been turned off. Learn more

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.