Copilot Studio Friction
Agent flow fails with FlowActionTimedOut after about 100 seconds
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: Official docs and CAT blog post re-read during seed migration; the 100-second limit is 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 reference set).
Are you in the right place?
- Your agent calls an agent flow, and the run fails with error code
FlowActionTimedOut. - The failure appears when the flow runs for roughly 100 seconds or more.
- The same flow succeeds when its run is short.
- The flow contains slow work, such as approvals, long loops, or slow external systems.
If instead the flow fails right away with FlowActionBadRequest → a schema or type mismatch (record planned).
If instead the agent says "No output was received from flow" → a branch misses its response (record planned).
What's happening
Copilot Studio waits a limited time for an agent flow to answer.
The official documentation sets a 100-second action limit.
In a community thread, Microsoft describes it as a roughly two-minute timeout.
When your flow needs longer, the agent gives up and reports FlowActionTimedOut.
The flow itself may even finish later — but the conversation has already moved on.
Picture a hotline that hangs up after 100 seconds on hold — whatever happens afterwards, the caller is gone.
Anything that waits for a person, such as an approval, can never fit into this window.
For technicians
Official guidance: actions placed after the "Respond to the agent" step "continue to run up to the flow run duration limit of 30 days."
Human-in-the-loop features pause the flow run until a person responds. Microsoft's Copilot Studio CAT blog states there is no way to call them inside a synchronous conversation. They work only in autonomous scenarios or after restructuring the flow. Express mode (preview) speeds up runs but forbids Delay and webhook actions and caps a run at 100 actions.
How to fix it
Solution 1
Official workaroundSplit the flow at "Respond to the agent"
- Open the agent flow in the flow designer.
- Identify the actions that produce the answer the agent needs right now.
- Place the "Respond to the agent" action directly after those fast actions.
- Move every slow action behind "Respond to the agent".
✅ You should now see: the agent receives its answer within the 100-second limit, while the moved actions keep running for up to 30 days.
- Save the flow.
Solution 2
Official workaroundUse the async continuation pattern
Use this when the user needs the slow part's final result, or for approvals mid-flow. The full recipe is the async continuation pattern; in short:
- Pass
System.Conversation.Idfrom the topic into the flow as an input. - Respond fast, as in the split solution above.
- After the slow part, call the agent back with the "Execute Agent" action of the Copilot Studio connector.
- Send the saved conversation ID along with the callback.
- Extend the agent's instructions to handle both the first call and the callback.
✅ You should now see: the agent reports the final result, correlated to the original conversation via the ID.
Solution 3
Official workaroundSpeed the flow up with Express mode
- Check the Express mode limits first: no Delay or webhook actions, at most 100 actions per run.
- Confirm your flow stays within those limits.
- Enable Express mode for the agent flow — it is a preview feature, so expect changes.
✅ You should now see: shorter run times in the flow's run history.
- Retest the slow case through the agent.
Check that it worked
Trigger the flow through the agent with a realistic slow case, in the published channel your users use. Expected: the agent answers within the timeout, and the run shows as succeeded in Power Automate's run history.
If it didn't work
- The fast part is still too slow. Move more actions behind "Respond to the agent". Reduce the remaining work before the response.
- You changed the flow's inputs or outputs. The agent then calls a stale schema. Refresh the tool configuration in the topic (see
FlowActionBadRequest, record planned). - The channel still runs your old agent version. Publish and propagation delay is suspect number one after any change. See Teams answers with an old version of your agent.
- A person is in the loop. Approvals pause the run; no split makes them synchronous. Move to the async continuation pattern.
Prevent it next time
- Treat the 100-second budget as a design constraint from day one of every agent flow.
- Decide on the async continuation pattern as soon as a human approval enters the design.
- Keep slow work behind "Respond to the agent" by default, not as an afterthought.
Evidence
Official documentationlearn.microsoft.com
The official doc sets a 100-second action limit; actions after 'Respond to the agent' run up to the 30-day flow run duration limit.
Official documentationlearn.microsoft.com
Express mode (preview) forbids Delay and webhook actions and caps a flow run at 100 actions.
Microsoft statementmicrosoft.github.io
Microsoft's CAT team specifies the async continuation pattern and states human-in-the-loop features cannot run in a synchronous conversation.