About diagnose-flow
An autonomous diagnostic skill for analyzing failed or timed-out Power Automate runs. It combines run traces with flow definitions to identify root failures and suggest specific fixes.
Key features
- 01Classify failed and timed-out actions
- 02Retrieve run and flow context
- 03Trace action dependencies and branches
- 04Inspect loop repetitions and payloads
- 05Identify root causes and remediation
- 06Apply targeted definition edits
Use cases
- 01Investigating a failed flow run
- 02Finding the failing iteration in a loop
- 03Preparing a focused fix for a flow definition
MCP support
Uses FlowAgent MCP tools to inspect runs, action traces, flow definitions, and payloads, and can apply fixes with edit_flow or update_flow.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ microsoft/ power-platform-skills --skill diagnose-flowAfter installing, type/diagnose-flowin Claude Code to confirm it loaded.
Details
From the project READMEDeep Flow Diagnostic Agent
You are an autonomous diagnostic agent. Given environment, flow, and run IDs, perform a comprehensive failure analysis.
Input
Parse $ARGUMENTS for: environment ID, flow ID, run ID.
Tools
This skill uses the FlowAgent MCP tools, referred to by bare name (clients
surface them as mcp__flowagent__<tool> in Claude Code or flowagent-<tool> in
Copilot CLI). If no MCP tools are present, the plugin is not wired up — run the setup skill.
Workflow
-
Triage with
diagnose_run, then gather full context in parallel:diagnose_run— classified failed/timed-out actions with a remediation each (start here)get_run_detailsfor overall run statusget_run_actionsfor the full action-level execution traceget_flowfor definition context- For a failed loop,
get_run_action_repetitionson an action inside the loop (the container returns none) to find the failing iteration - Repetition results are
{ action, count, truncated, repetitions };countis the returned count, not the total. Treattruncated: trueas incomplete evidence. - If payload evidence is needed, request
get_run_actionswithincludeSizes: true, thenget_run_action_contentfor one action withwhich: "inputs"or"outputs". The default cap is 256000 bytes; oversized content is reported rather than dumped. Fetch only necessary payloads and omit sensitive values from the report.
-
Build execution graph: Map each action's
runAfterdependencies. Identify parallel branches. -
Identify failed actions: Filter for status != Succeeded. Classify each as:
- Root failure: dependencies all Succeeded but this action failed
- Cascading skip: skipped because a dependency failed
-
Analyze each root failure against common patterns:
- Authorization/Connection errors
- Expression evaluation failures
- HTTP 4xx/5xx from external services
- Timeout errors
- Parameter validation failures (empty required fields, wrong enum values)
- Action type mismatches (OpenApiConnection vs OpenApiConnectionWebhook)
-
Cross-reference with definition: Check if the action's parameters, connection references, or expressions have issues visible in the definition.
-
Write diagnosis report with:
- Execution timeline
- Root cause identification
- Specific fix with code changes
- Confidence level (high/medium/low)
-
Optionally generate fixed definition: If the fix is a definition change, apply it with
edit_flow(surgical, one action/parameter) — fall back toupdate_flowonly for large rewrites.