plugins/power-automate/skills/debug-flow/SKILL.md
Debug a failed Power Automate flow run. Use when a flow failed, has errors, or the user wants to troubleshoot a run.
npx skillsauth add microsoft/power-platform-skills debug-flowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are helping the user debug a failed Power Automate flow run.
This skill uses the FlowAgent MCP tools. Clients surface them with a
client-specific prefix — mcp__flowagent__<tool> (Claude Code) or
flowagent-<tool> (Copilot CLI) — so they're referred to by bare name below
(e.g. get_run_actions). Use CLI shell commands (local engine build only) for
CLI-only operations or when no MCP tools are present.
| Tool | Purpose |
|------|---------|
| list_flows | Find flows by name (use name param for search) |
| get_run_history | Get recent runs for a flow |
| diagnose_run | One-shot: classify failed actions with remediations |
| get_run_details | Get details for a specific run |
| get_run_actions | Get action-level execution trace |
| get_run_action_repetitions | Iteration-level detail for a loop (which iteration failed — pass an action inside the loop) |
| get_flow | Get flow definition for context |
| get_operation_details | Confirm the correct action type / parameters |
| edit_flow | Apply a surgical fix to one action/parameter |
| update_flow | Replace the whole definition (large rewrites) |
| run_flow | Re-run after fix (use wait: true to see result) |
| resubmit_run / cancel_run | Resubmit a fixed run / cancel a stuck one |
Identify the flow and run
$ARGUMENTS for flow ID and optional run ID.list_flows with name param to search. Ask user to pick if ambiguous.get_run_history and find the most recent failed run.Fast triage with diagnose_run
diagnose_run for the run — it returns the failed/timed-out actions already classified with a remediation each. Use this as the starting point.get_run_actions (full trace) and get_flow (definition context). For a failed loop, call get_run_action_repetitions on an action inside the loop to find the failing iteration.Analyze failures
runAfter dependency chain to separate root cause from cascading failures:
Root cause classification
AuthorizationFailed, ConnectionNotFound, InvokerConnectionOverrideFailed): Suggest re-auth or fix connection source to EmbeddedExpressionEvaluationFailed, InvalidTemplate): Show the expression, explain what's wrong, suggest fixWorkflowOperationParametersRuntimeMissingValue): Missing/empty required parameter. Add null guard: @if(empty(...), 'default', ...)ActionTimedOut): Suggest retry policy or splitting the operationInvalidOpenApiConnectionOperationType): Wrong action type. Call get_operation_details to find correct type.Suggest fix
edit_flow (surgical, one action/parameter) — fall back to update_flow only for large rewrites.Re-test
run_flow with wait: true to verify the fix works (or resubmit_run to retry the original run with its trigger inputs).| # | Action | Status | Error Code | Error Message | |---|--------|--------|------------|---------------|
[Step-by-step fix with code]
data-ai
Internal mobile-app workflow read and executed only by /setup-offline-profile to enable Dataverse table prerequisites for a Mobile Offline Profile.
tools
Internal mobile-app workflow read and executed only by mobile orchestrators to change one table's scope, columns, or sync settings in a Mobile Offline Profile.
data-ai
Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.
tools
Internal implementation skill invoked by /add-native for pen, signature, ink, drawing, and handwriting capture workflows using @microsoft/power-apps-native-pen-input.