URLs in agent responses are percent-encoded when delivered via Direct Line, but display correctly in the Copilot Studio test panel.

Sameer Nayak 50 Reputation points
2026-10-05T13:33:35.0833333+00:00

Hello,

We are seeing URLs in our agent's responses change between the Copilot Studio test panel and what is delivered through Direct Line.

Example: - Source URL (in our Custom Data / topic output): https://example.org/Q&A+Guide.pdf - Copilot Studio test panel: link displays and opens correctly - Direct Line activity text (verified in Postman, so this is not our backend): https://example.org/Q&A%2BGuide.pdf

Characters such as "+" are converted to their percent-encoded form (%2B) in the delivered response. The behavior is inconsistent: some responses are encoded and others are not.

This is a problem because we cannot reverse it reliably. If a URL legitimately contains "%2B", decoding the delivered text also changes that URL. After encoding, we cannot tell whether the platform added the %2B or it was in the original URL.

Our questions: 1. Is there a setting, configuration, or response format that keeps URLs exactly as provided in the topic output? 4. Why is it inconsistent between responses? 5. What is the recommended way to deliver URLs containing "+", "&", or "%" unchanged to a Direct Line client?

Environment details: - Product: Copilot Studio agent with generative orchestration - Channel: Direct Line (confirmed in Postman as well as our client) - Setup: topics return text through Topic.answeredValue (autoSend: false)

Thank you.

Microsoft Copilot | Microsoft 365 Copilot | Development
0 comments No comments

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.