
Flowstudio Power Automate Debug
Diagnose failing Power Automate cloud flow runs with action-level inputs and outputs via FlowStudio MCP instead of Graph top-level codes only.
Overview
flowstudio-power-automate-debug is an agent skill for the Operate phase that finds root causes in failing Power Automate runs using FlowStudio MCP action-level telemetry.
Install
npx skills add https://github.com/github/awesome-copilot --skill flowstudio-power-automate-debugWhat is this skill?
- Step-by-step diagnostic process for Power Automate cloud flows through FlowStudio MCP
- Surfaces action-level inputs and outputs Graph API omits at the run summary
- Covers DynamicOperationRequestFailure, connector auth, timeouts, and expression failures
- Links worked examples: expression errors, data-not-flow, null child flows
- Requires reachable FlowStudio MCP with valid JWT (paid subscription)
- 3 linked real debugging examples in upstream repo
Adoption & trust: 1.6k installs on skills.sh; 34.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your flow shows failed in the portal but Graph only gives a top-level status, so you cannot see which action broke.
Who is it for?
Solo builders or tiny ops teams maintaining Power Automate cloud flows who subscribe to FlowStudio MCP for deep run inspection.
Skip if: Teams without FlowStudio MCP, purely on-prem legacy flows outside this server, or one-off scripts with no Power Automate estate.
When should I use this skill?
Asked to debug a flow, investigate a failed run, find root cause of flow error, diagnose timeout, or troubleshoot expression failures with FlowStudio MCP.
What do I get? / Deliverables
You trace the failing action, inspect real I/O, and get a concrete fix path—after FlowStudio MCP is connected and authorized.
- Identified failing action
- Root-cause narrative (data vs flow bug)
- Recommended fix steps
Recommended Skills
Journey fit
Operate is where live automations break; this skill is for production flow failures, not greenfield design. Errors subphase matches root-cause investigation, connector auth failures, timeouts, and expression faults in runs.
How it compares
Use instead of guessing from portal summaries; it is an MCP-guided debug ritual, not the Graph API alone or generic log grep.
Common Questions / FAQ
Who is flowstudio-power-automate-debug for?
Builders who run Power Automate in production and need agent-assisted RCA when runs fail, time out, or throw connector and expression errors.
When should I use flowstudio-power-automate-debug?
In Operate when a scheduled or triggered flow fails; after Ship when pre-launch test runs surface action errors; whenever you are asked to debug a flow, inspect outputs, or fix DynamicOperationRequestFailure.
Is flowstudio-power-automate-debug safe to install?
Check the Security Audits panel on this page; the workflow needs MCP access with a JWT to your tenant—scope credentials minimally and avoid pasting secrets into prompts.
Workflow Chain
Requires first: flowstudio power automate mcp
SKILL.md
READMESKILL.md - Flowstudio Power Automate Debug
# Power Automate Debugging with FlowStudio MCP A step-by-step diagnostic process for investigating failing Power Automate cloud flows through the FlowStudio MCP server. > **Real debugging examples**: [Expression error in child flow](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/fix-expression-error.md) | > [Data entry, not a flow bug](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/data-not-flow.md) | > [Null value crashes child flow](https://github.com/ninihen1/power-automate-mcp-skills/blob/main/examples/null-child-flow.md) **Prerequisite**: A FlowStudio MCP server must be reachable with a valid JWT. See the `flowstudio-power-automate-mcp` skill for connection setup. Subscribe at https://mcp.flowstudio.app --- ## Source of Truth > **Always call `list_skills` / `tool_search` first** to confirm available tool > names and parameter schemas. Tool names and parameters may change between > server versions. > This skill covers response shapes, behavioral notes, and diagnostic patterns — > things tool schemas cannot tell you. If this document disagrees with > `tool_search` or a real API response, the API wins. --- ## Python Helper ```python import json, urllib.request MCP_URL = "https://mcp.flowstudio.app/mcp" MCP_TOKEN = "<YOUR_JWT_TOKEN>" def mcp(tool, **kwargs): payload = json.dumps({"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": tool, "arguments": kwargs}}).encode() req = urllib.request.Request(MCP_URL, data=payload, headers={"x-api-key": MCP_TOKEN, "Content-Type": "application/json", "User-Agent": "FlowStudio-MCP/1.0"}) try: resp = urllib.request.urlopen(req, timeout=120) except urllib.error.HTTPError as e: body = e.read().decode("utf-8", errors="replace") raise RuntimeError(f"MCP HTTP {e.code}: {body[:200]}") from e raw = json.loads(resp.read()) if "error" in raw: raise RuntimeError(f"MCP error: {json.dumps(raw['error'])}") return json.loads(raw["result"]["content"][0]["text"]) ENV = "<environment-id>" # e.g. Default-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ``` --- ## Step 1 — Locate the Flow ```python result = mcp("list_live_flows", environmentName=ENV) # Returns a wrapper object: {mode, flows, totalCount, error} target = next(f for f in result["flows"] if "My Flow Name" in f["displayName"]) FLOW_ID = target["id"] # plain UUID — use directly as flowName print(FLOW_ID) ``` --- ## Step 2 — Find the Failing Run ```python runs = mcp("get_live_flow_runs", environmentName=ENV, flowName=FLOW_ID, top=5) # Returns direct array (newest first): # [{"name": "08584296068667933411438594643CU15", # "status": "Failed", # "startTime": "2026-02-25T06:13:38.6910688Z", # "endTime": "2026-02-25T06:15:24.1995008Z", # "triggerName": "manual", # "error": {"code": "ActionFailed", "message": "An action failed..."}}, # {"name": "...", "status": "Succeeded", "error": null, ...}] for r in runs: print(r["name"], r["status"], r["startTime"]) RUN_ID = next(r["name"] for r in runs if r["status"] == "Failed") ``` --- ## Step 3 — Get the Top-Level Error > **CRITICAL**: `get_live_flow_run_error` tells you **which** action failed. > `get_li