Every time an agent runs, the result is recorded with an outcome. Five are possible, and they're deliberately distinct: telling "the agent handed off to a human" apart from "the agent broke" is the difference between a working design and a bug to chase.
The agent did the job and finished. What you want to see most of the time.
Worth remembering that resolved means the agent believed it was done, not that the customer was satisfied. Read a few resolved runs now and then — an agent that ends confidently after answering the wrong question also counts as resolved.
The agent handed the work to a person or another agent and stepped out. This is a success, not a failure — an agent that recognises its own limits is working as intended.
A rising escalation rate is still worth reading. Whether it means the agent is too cautious or that it keeps meeting cases nobody prepared it for is only visible in the runs themselves.
The run is paused, not over. The agent created a task and will carry on once a teammate answers.
These are the ones to watch operationally. A run that sits waiting for days is a question nobody noticed, and the customer is usually waiting at the other end of it.
The run ended without completing and without being handed on — typically because whatever it was working on stopped being relevant, such as a conversation that ended on its own.
Something went wrong: a tool that errored, an endpoint that didn't respond, a malformed reply. Open the run and look at the last tool call — that's where the cause usually sits.
The common ones are an expired credential, an endpoint that changed shape, and a required value that arrived empty.
The run hit its cost ceiling and was stopped. It's kept separate from Failed precisely because the fix is different: either the limit is too low for the work, or the agent is doing more work than the task warrants.
One of these occasionally is normal. A pattern of them means something is looping.
The agent used up the reasoning and tool steps allowed for one run without concluding. Almost always a task that's too broad, or instructions that never tell the agent when it's finished.
Adding an explicit stopping condition to the instructions — what “done” looks like, and what to do when the answer can't be found — resolves most of these.