AgentMeshLog inStart free

How-to

How to troubleshoot a failed run

Open the run from Executions and the first thing to ignore is the status. A run status only knows whether something threw an exception, and the interesting failures do not throw. The information you want is one level down, in the step rows.

The run I keep pointing at below is a real logged execution of mine — the one that reported success while telling a customer something it had not checked. I published it in full rather than describing it.

Read the run

  1. Open Executions and click the run.
  2. Read the step rows in order. Each one records what it received, what it returned, its tokens, its cost and its duration.
  3. Find the first step whose input is not what you expected — that is usually where the problem started, and it is rarely the step that looks broken.
  4. Check every tool call in that step. A refused call shows its status next to the tool name.
  5. Fix the cause in the agent or workflow, then click 🔁 Replay to re-run with the exact same input.

Replay uses the workflow’s current definition with the original run’s input, so editing and replaying is the fastest way to confirm a fix against the exact input that broke it.

Two things stop a Replay before it starts. The workflow has to be Active — an inactive one is refused rather than queued. And on the free plan only sequential workflows run: parallel, conditional, fan-out and DAG workflows need Pro, so replaying one of those on a free account returns an error rather than a run.

What each status actually means

`FAILED`

A step raised an error and the run stopped. The error message is on the failing step. This is the easy case, because the system is telling you the truth.

`TIMEOUT`

Two different things produce this. A workflow run is stopped at about 61 minutes. Separately, any run still sitting in PENDING or RUNNING after 90 minutes is marked TIMEOUT by a sweeper, so a run can never stay “running” forever if the queue loses it. A run that times out at 90 minutes rather than 61 usually means it never really started.

`COMPLETED`, and still wrong

The one that costs you weeks. Nothing threw, so the run reports success — while having done the wrong thing. Source: a run of mine published in full finished COMPLETED after two http_request calls returned 403 with "ok": true in the tool result, which is precisely why the agent believed it had the data. Read the tool result’s status, not its ok. It cost $0.0204 and took 28.5 seconds.

If a run matters, do not alert on its status. Alert on a count — what it says it processed, against what the source says it handed over.

Common causes

What you seeUsual causeFix
A tool result shows 403The agent reached something the SSRF guard blocks, or an integration is not connectedConnect it under Account → Integrations, or point the call at a public endpoint
Error: daily limit reached for …The per-user daily cap for that tool is spent — send_email is 100 a day, http_request 1,000. It comes back as the tool’s result text, not an HTTP statusWait for the reset, or run the workflow less often
The answer is emptyOne step received nothing to work withRead that step’s input; the break is upstream of it
Nothing ran at allAgents and workflows are inactive by defaultOpen it and set it to Active
Provider error with your own keyA bring-your-own LLM key is invalid or out of quotaRe-add it under Account → Integrations
COMPLETED with no effectA condition never matched, so every branch was skippedCheck the step rows for skipped steps and their reason

Before you ask for help

Two things make a problem answerable in one round instead of four: the run’s id, and which step row you think is wrong. Both are on the run page. If you want to see what a fully readable run looks like, including a real failure published on purpose, the source is here: one successful run and one failed run, no account needed.

Next

  1. Understand what a tool can and cannot reach — see Give agents tools & integrations.
  2. Stop a scheduled workflow failing silently — see Automate: schedules & webhook triggers.