Open Science

The Failure Atlas

Your agents write down everything they do. Almost nobody reads it back.

That log is the most specific record that exists of how AI actually behaves for you. Not on a benchmark, not in a demo, but on your work, in your setup, with your habits. Companies hold this kind of data close, and they are right to. It is the one thing no public dataset can give you, and it is sitting unread on your own disk.

So we read ours. Here is what was in there.

74% to 79%
of the failures we sorted by hand have no box on the research world's standard list of ways agent systems fail.
31% to 38%
of them are plumbing: quota kills, permission blocks, network faults. The single biggest group, and the one with no box.
1 in 4
How often our own dishonesty detector was right when it fired: 3 of the 12 cases we checked. The failures that matter most are the hardest to catch automatically. That is a finding, not an apology.
2,781 sessions
Seven months of real agent work, January to August 2026. Two setups that could not be less alike, and nothing sampled out at intake.

How we got there: a pipeline of agents went through 2,781 sessions and 709,843 logged events from January to August 2026, across two setups that could not be less alike: one person's coding agents, and a fleet of assistant bots that lots of different people talk to across four chat platforms. It flagged anything that looked like a failure. Then a language model read the full transcript around 185 of those flags and ruled on what had really gone wrong. Then we checked how often the flagging itself was wrong, which turned out to be the more interesting half.

2,781 sessions 7,042 session files 709,843 events 2026-01 → 2026-08 13 detectors 185 failures judged in full

What actually goes wrong

Four pictures of seven months of agent work. No vocabulary required.

Two of the things we found we have not seen written down anywhere else. The biggest single kind of real-world agent failure is plumbing, and the research world's standard list of agent failures has no box to put it in. And the same detection toolkit, pointed at chat assistants instead of coding agents, goes partly blind without saying so.

Here is what we found, how far it honestly got, and how to run it on your own logs.

What broke, and how often
bars: how many times each kind of failure happened · dots: how often that detector was right when it fired, 0→1 · n = 4,662 incidents across 709,843 events · hover or focus a row for more

The commonest failure is the cheapest one. Tool errors happen 1,165 times, 16.4 for every 10,000 logged actions, and 881 of those 1,165 were shrugged off before the session carried on. The rare ones are the messier ones. An agent getting challenged on something it claimed happens only 135 times, but those moments set off far more tripwires at once (0.68 against 0.36 for a tool error). Counting failures, on its own, tells you almost nothing.

What "tool error" actually means
tool errors by kind · n = 7,999 errors sorted

Mostly the ordinary physics of software. A command exits non-zero. A file is not where the agent thought it was. An edit no longer matches the text it was written against. The interesting part is never the error itself. It is what the agent says next.

Where in a session things break
position in the session, in tenths (left = start, right = end) · shade = how far above or below an even spread · hover or focus a cell for counts

Tool errors are flat: they are the weather. Running out of API quota piles up at the very end (106 of their incidents in the final tenth versus 16 to 43 in earlier ones), because limits arrive late. Giving up is almost entirely a last-tenth event, 105 of its 127 positioned incidents. Human frustration is heaviest in the opening tenth (141 incidents, its single largest) and stays high the whole way through, 110 in the seventh and 91 in the eighth. Each row is shaded against its own biggest cell, so rows compare in shape, not in size.

What happened next
what each incident led to, immediately afterwards · stacked, absolute counts · hover or focus a segment for count and share

The hopeful row: after 99 of 135 times a person pushed back on something the agent claimed, the session recovered and carried on. That is a count of what came next, not proof the pushback caused it. The bleak rows: all 26 subagent failures ended their session on the spot, and 108 of 139 abandonments ended the session, which is close to circular, since that detector fires at session end.