LowCodeStacks™
Sign in

Copilot Studio FlowActionTimedOut: agent flows that run too long

Copilot Studio FlowActionTimedOut means your agent flow didn't reply in time. Respond to the agent sooner and move slow steps after the reply.

Copilot StudioFix a problem10 min read

Checked against Microsoft Learn · 9 sourcesPosted by the Maker DeskHow we write guides

Your Copilot Studio agent calls an agent flow, waits, and then shows FlowActionTimedOut with the message "The flow with id {FlowId} has timed out." The flow isn't necessarily broken. The agent waits only a limited time for the flow's reply, and this flow took longer than that. The fix is to send the reply sooner: put Respond to the agent as early as you can, move slow actions after it, and cut what the flow fetches before it replies.

  • In the test pane, a tool or topic that calls an agent flow fails with the code FlowActionTimedOut.
  • The message reads The flow with id {FlowId} has timed out. Error Code: {FlowErrorCode}, with your flow's ID and an error code filled in.
  • In the classic or Teams experience you may see error 3002 instead: Power Automate didn't accept the request, and Learn says the flow might be taking more than two minutes to respond.
  • A different message, Something unexpected happened. We're looking into it. Error code: 3000., isn't about time. Learn's page on modifying a flow links it to a flow set to respond asynchronously; the error code reference lists 3000 as a general system error. See asynchronous response.

What the error means

Microsoft's error code reference describes FlowActionTimedOut as an agent flow that took more than 100 seconds to run and timed out. The clock that matters is the time until the flow returns to the agent, not the time the whole run takes.

To be added to an agent as a tool, a flow must meet these conditions, per Microsoft's page on adding an agent flow to an agent:

RequirementWhy it matters here
The trigger is When an agent calls the flow and the flow replies with Respond to the agentThe reply action is what stops the agent's wait
The flow responds in real time, with asynchronous response turned offLearn says a flow that runs in the background might cause error 3000
The flow is publishedLearn lists it as a condition for adding the flow as a tool
The flow responds within the action time limitMiss it and you get FlowActionTimedOut

The error page's fix calls the reply step "Return value(s) to Copilot Studio". Learn's agent flow pages, including the most recently revised one (adding an agent flow to an agent, June 2026), call it Respond to the agent, and this guide uses that name.

100 seconds or two minutes?

Learn's pages differ. They don't give one figure for the limit:

  • 100 seconds: the error code reference. On its web app tab, it says FlowActionTimedOut means the flow took more than 100 seconds to run, and its fix talks about a flow that took more than 100 seconds before it returned to your agent.
  • 100 seconds: three agent flow pages. Create an agent flow as a tool, Add an agent flow as a tool to an agent, and Modify an existing flow to use with an agent each say the flow must respond within the 100-second action limit.
  • Two minutes: the express mode page (a preview). It says that, by default, a flow that an agent or app calls fails if it takes longer than two minutes to respond.
  • Two minutes: the error code reference again. On its classic and Teams tab, error 3002 says Power Automate didn't accept the request and that the flow might take more than two minutes to respond.

Learn doesn't say which figure applies to your agent. Our advice, not a Microsoft rule: design for the shorter one. A flow that replies well inside 100 seconds meets every figure above.

Fix it step by step

One call, one clock
  1. Step 2The time limit starts
  2. Step 3Get only what the reply needs
  3. Step 4Respond to the agent
  4. Step 5Slow steps carry on afterwards

1. Find the slow step

  1. In Copilot Studio, open Flows and select the flow.
  2. Open its Activity tab. Microsoft's page on monitoring agent flows says it lists each run with its status and how long it took.
  3. Select a slow run and step through it to see which actions took the time.

The error page also tells you to check the flow for errors. In the agent flow designer, errors show in red, and Flow checker on the menu above the canvas lists them all.

2. Move the response earlier

Ask what the agent actually needs to answer the user. It might be a short result, such as a record ID, a status or a sentence. Put Respond to the agent straight after the steps that produce it.

Microsoft's documentation says actions placed after Respond to the agent keep running, up to the flow run duration limit of 30 days. So slow work that the user doesn't need to see in the reply can go there: writing to other systems, generating a file, sending a confirmation email.

If the flow branches, you can use the response action in more than one branch. Learn's rule is that it must return the same outputs in each one.

3. Tell the user what happens next

When the slow part matters to the user, reply with what you know now ("Your request is logged; you'll get an email when the report is ready") and let the steps after the response send the result later. That's our design suggestion, built on the documented behaviour above. Write the agent's instructions so it doesn't promise the finished result in the chat.

4. Make the slow part faster

The error page's own advice is to optimize the query and the data you return from the back-end system. In practice:

  • Filter at the source, so a connector returns only the rows you need. Our OData filter query cheat sheet covers the syntax for many connectors.
  • Ask for fewer columns, and return only the fields the agent uses.
  • Keep loops out of the steps before the response where you can. Learn's advice for the related ExecutionTimeout code includes checking loops and branches for inefficiencies.

5. Republish and test again

Publish the flow, then test the agent again in the test pane and watch the run on the Activity tab.

Check the asynchronous response setting

This is a different failure with a similar feel: the agent calls the flow and gets nothing useful back. Learn's page on modifying a flow says a flow that runs in the background, or asynchronously, might cause an error, and the agent then says "Something unexpected happened. We're looking into it. Error code: 3000."

Flows created from Copilot Studio have asynchronous responses turned off by default. A flow you changed from another trigger might have it on. Open the flow, select the Respond to the agent action, open its settings, and turn Asynchronous response off. Learn's two newest agent flow pages put the toggle under Networking in the action's settings; the older page on modifying a flow just says the Settings tab. Save and publish.

Try express mode (preview)

Express mode is a preview feature that runs agent flows faster. Microsoft says it makes it more likely that a flow finishes inside the two-minute window, and that the gain depends on the flow: it suits flows that do a lot of processing but don't move much data from connectors.

What it needs, per the express mode page:

  • the agent or app trigger, and a response action;
  • a Copilot Studio plan associated with the flow (there's no extra cost; actions are still billed under Copilot Studio metering);
  • an environment on Power Automate's new architecture. Learn says that if the express mode toggle doesn't appear on the trigger card, your environment doesn't support it yet. Microsoft's environment architecture page shows how to check: in Power Automate, press Ctrl + Alt + A and look for environmentFlowHostingType. SelfHostMultiTenant means the new architecture.

To turn it on, open the flow, edit the Details on its Overview page and turn on Express mode, or use the toggle on the trigger card in the designer.

Its limits are strict. Under express mode, Learn lists:

LimitValue
Run timeThe flow must complete in two minutes
Actions per run100 is the safe limit, and each loop iteration counts as an action; Apply to each up to 100 items, Do until up to 100 iterations
Variable content1,024 characters
Data from one connector response64 KB
Not supportedDelay and webhook actions; automatic testing in the designer. Live activity isn't shown while the flow runs; inputs and outputs appear once the run ends

If a run fails with an error about a data limit, Microsoft's advice is to turn express mode off for that flow.

Do

  • Design every agent flow to reply well inside 100 seconds (our advice, since Learn's pages give different limits).
  • Put Respond to the agent as soon as the reply's values exist, and slow work after it.
  • Check run times on the Activity tab after every change.

Don't

  • Don't turn on asynchronous response to dodge the time limit; Learn says it must be off for an agent to use the flow, and that it might cause error 3000.
  • Don't put a long loop or a large list query before the response.
  • Don't rely on express mode in production while it's a preview.
CodeWhat Learn says it means
FlowActionBadRequestThe request to the flow was malformed, for example an input of an unsupported type
FlowActionExceptionAn error while the flow ran, such as outputs the agent expected but didn't get
ExecutionTimeoutA tool or flow action went over its configured execution timeout

The steps in this guide follow Microsoft's documentation as of 27 October 2026; we haven't run them in a tenant. Calling in the other direction, a flow that calls an agent, is covered in call a Copilot Studio agent from Power Automate. For which kind of flow to build, see cloud flow, agent flow or desktop flow?.

Sources

Add LowCodeStacks as a preferred source on Google

Did this fix it?

Comments

No comments yet. Share what worked for you.

Sign in to comment. Comments show under a display name you choose, never your email.