Copilot Studio Friction
"Outgoing message size too big" — the answer never arrives
Last verified
Details & related
Assessment
- Confidence
- Confirmed officialConfirmed by Microsoft documentation or an official statement.
- Severity
- Blocking
- Typical time lost
- Hours
Identification
Verification & changes
Verified
Doc check by human: Error-code reference and variables documentation re-read during seed migration; the Direct Line cap and remedy are still documented.
Change
Provisionally approved by the Product Owner; external LLM quality review pending.
Change
Initial record created from the seed dossier (migration wave 1).
Are you in the right place?
- The agent's answer never arrives, or the turn fails with "Outgoing message size too big".
- Logs or error details show the code
MessageSizeExceeded. - The failing answer carries a big payload — long text, a large object, or card data.
- Small answers in the same topic go through.
If the error names conversation state → see "Conversation state size exceeds the maximum allowed limit". That limit caps everything stored across the conversation; this record caps one outgoing message. If the chat shows raw JSON instead → see Chat shows raw JSON instead of an answer.
What's happening
Every channel caps the size of a single outgoing message.
For Direct Line, the cap is 262,144 bytes — 256 KB — documented as of 2026-07-08.
When your agent tries to send more, the message fails with MessageSizeExceeded.
The usual culprits are variables holding large text or whole objects.
Adaptive Card payloads passed between topics are a documented cause as well.
Think of a mailbox slot: a normal letter fits, a parcel does not.
The parcel is not returned politely — the delivery fails, and the user sees nothing.
The fix is to send only what the user needs, not the whole data object.
For technicians
The error-code reference names variables with large text volumes, such as JSON.stringify results, as a typical cause.
Card data handed from topic to topic travels inside the conversation payload.
The documented remedy: pass only the required property onward instead of the entire object.
Message caps differ per channel; treat the smallest target channel as your payload budget.
How to fix it
Solution 1
Official workaroundPass only the needed property
- Find the node that sends the failing answer.
- Check which variable feeds it and how big that value gets.
- Add a "Set variable value" node before the send.
- Store only the property you need, for example
Topic.Answer = Topic.ToolResult.responseText. - Point the message node or card at that small variable.
- Remove the large object from anything that leaves the topic.
- Retest the failing case.
✅ You should now see: the answer arrives in the channel instead of failing.
Check that it worked
Trigger the request that produced the oversized answer, in the affected channel — not only the test pane.
Expected: the full answer arrives, with no MessageSizeExceeded in the logs.
If it didn't work
- Another big payload travels along. Cards and attachments count toward the same cap. Check every part of the outgoing turn, not only the text.
- A topic handover still carries the object. Later topics inherit stored objects. Apply the single-property rule at every handover, not only at the send.
- The target channel has a smaller cap. Caps differ per channel. Test in the channel your users use, and budget for the smallest one.
- The channel runs the old version. Publish and propagation delay is suspect number one. See Teams answers with an old version of your agent.
Prevent it next time
- Follow variable hygiene: single properties between topics, never whole objects or card payloads.
- Know the payload budget of every channel you publish to before you design data-heavy answers.
- Keep large data out of the conversation; store and fetch it through an agent flow.
Evidence
Official documentationlearn.microsoft.com
The error-code reference documents 'Outgoing message size too big', names the 262,144-byte Direct Line cap, and blames variables with large text.
Official documentationlearn.microsoft.com
Values move between topics through variables, which is the path oversized objects and card payloads travel on.