ResourcesField notesAnonymisedAugust 2026

The agent found everything and finished nothing

Six agentic journeys run against the public site of a national securities exchange. Two completed. In the flow that mattered most, the agent visited every source the deliverable required and still produced nothing. Path efficiency was 0% in every single flow, while error recovery was 100%. Accurate at the level of each action, consistently poor at reaching a goal.

Nothing here is a content gap. Every fact the agent needed was published and reachable. What was missing was structure, state and a way to stop.
2 / 6
Tasks completed
Both were single-surface lookups. No multi-step journey finished.
0%
Path efficiency
In every flow, including the two that completed.
100%
Error recovery
Every interaction error was recovered. No stall ever was.
14
Identical captures
Consecutive screenshots with no state change before one run stalled.

Lookups pass. Journeys do not.

Six ordinary investor requests, each executed end to end by an agent driving the public website. The split is clean: both tasks that completed were single-surface lookups. All four multi-step journeys, signup, corporate-action research, onboarding and a cited brief, ended without a deliverable.

Journey
What ended the run
Actions
Result
Company profile lookup
Completed, but eleven browser actions and 217 seconds for one record, with values read off the rendering rather than extracted.
11
completed
Market-mover discovery
Completed in four actions, then returned ticker codes instead of the company names asked for, and dropped the delayed-data caveat.
4
completed
Corporate-action research
A filtered view kept returning an empty set. The agent kept re-filtering, never switched route, and was cancelled at the step limit.
30
cancelled
Onboarding navigation
Correct journey identified, then repeated returns to the home page. One eligibility detail was reported with no source behind it.
30
cancelled
Multi-surface brief
All four source surfaces visited at 93% action precision, then the run kept working an exhausted page until the budget ran out. No brief.
30
no deliverable
Signup and login
Reached the plans page, never executed the registration transition, and never asked the user for the emailed verification code.
30
stalled
Browser baseline · structured tool access was not available to the test account and was not evaluated

Where the journey actually stops.

Ordered by how often they end a run. Each has appeared in unrelated engagements and been reproduced from a frozen run. The cost line is what the failure does to the score, not an estimate of your revenue: a dead end is a lost completion, an unprovable result is a completion you cannot count, a gate is categorical.

01
The unchanged state
Any long journey
Dead end

The agent keeps acting on a page that is no longer changing. Nothing errors, so nothing signals that the path is spent, and the run burns its budget in place. This was the single most expensive pattern in the set: it ended three of the six flows.

› 14 consecutive captures, no state change, no escalation, run stalled
What it costs
The entire step budget, spent after the useful work was already done.
The fix
Emit a detectable state on every meaningful transition, so "nothing happened" is something a caller can read rather than infer from pixels.
02
Empty that looks like loading
Filtered views · search results
Dead end

A filtered view returns nothing. To a person that reads as "wrong range, try another". To an agent it is indistinguishable from a view that has not finished loading, and retrying is the rational next action. So it retries, until it is cancelled.

› date filter re-applied against a persistently empty result set until step limit
What it costs
A whole run for a record that may well have existed one filter away.
The fix
Return an explicit "no records for this query" state, distinct from loading and distinct from error.
03
Pixels instead of data
Prices · scores · charts
Unprovable

The number is on screen and only on screen: inside a canvas, a chart or a styled panel with no labelled equivalent. The agent lifts it from the rendering, which means the answer arrives with no traceable source and the wrong adjacent value is easy to grab.

› values inferred from a screenshot; ticker returned where company name was asked for
What it costs
A completion you cannot verify, and requested fields quietly missing from the answer.
The fix
Publish the same values as named fields with an explicit as-of timestamp, so the answer carries its own provenance.
04
The detached caveat
Delayed data · disclaimers
Unprovable

A qualifier that governs the numbers sits next to them as page text rather than inside them as data. A human reads "delayed by 15 minutes" and discounts what follows. An agent that took the figures from the rendering has no structural link between the two, and reports them as current.

› delay disclaimer not carried into an answer about the current session
What it costs
A materially misleading answer produced from entirely accurate published data.
The fix
Bind freshness and provenance to the values themselves, so a caveat cannot be separated from what it qualifies.
05
The journey with no end
Multi-step workflows
Dead end

The steps exist but the workflow never declares where it is or when it is done. Progress is implied by what the page looks like, so the agent cannot assert that a step succeeded, cannot tell partial from complete, and has no completion signal to report back.

› no multi-step journey in the set reached a clean completion state
What it costs
Work that was genuinely performed cannot be counted, and gets attempted again.
The fix
Name each step as a distinct detectable state, with pre- and post-conditions and an unambiguous completion signal.
06
The missing hand-off
Verification · human checkpoints
Gate

Some checkpoints are deliberately human: an emailed code, a signature, a call-back. That is correct design. What is missing is legibility, the flow never marks the step as requiring a person, so the agent does not escalate. It waits, and then it stalls.

› verification code never requested from the user; run ended without reaching sign-in
What it costs
A journey that could have completed with one question to the customer, abandoned instead.
The fix
Mark human-in-the-loop steps explicitly so an agent knows to ask rather than retry.
07
Requirements spread thin
Onboarding · eligibility
Gate

The rules a customer must satisfy are correct but scattered across pages. An agent working to a step budget assembles what it can find and fills the remainder with assumption, which is where a quality defect becomes a compliance one.

› an eligibility detail reported with no supporting source located
What it costs
Regulated information restated as advice, sourced from nothing.
The fix
Publish the sequence, requirements and eligibility as one retrievable, citable set rather than a multi-page hunt.
08
Interactive before it is ready
Dynamic pages
Unprovable

Controls appear before they are bound, so an agent that acts on what it sees hits stale elements and timeouts. It recovers, every time, and pays for it in actions and seconds on what should have been a one-call lookup.

› two stale-element failures and one wait timeout inside a single lookup
What it costs
Retries and latency on the simplest tasks, which is how a lookup costs eleven actions.
The fix
Make elements actionable only once bound, and expose a ready state instead of implying one.

Not every failure belongs to the website.

A finding is only useful if it names the layer that has to change. We separate four, and we say plainly when the evidence does not support attribution at all.

Cause A
The surface

Content that settles after it appears, empty views with no distinguishable empty state, requirements spread across pages, and workflows that end with no completion signal. This is the layer the property owns, and the layer this work changes.

Cause B
The agent

No stall or loop detection, no strategy switch when a path stops yielding, no escalation when a human checkpoint appears, requested fields and freshness caveats dropped from the final answer. Real, and not the property’s to fix, which is exactly why it has to be reported separately rather than folded into a score.

Cause C
The data

One view returned nothing for the ranges the agent tried. Whether records existed outside those ranges was never established, because the run was cancelled before an alternative route was attempted. We report that as unknown rather than as a finding.

Cause D
The tooling

Structured tool access was not available to the test account, so no agent-facing interface was exercised. The browser baseline stands alone, and the honest next step is to re-run the identical tasks with access granted and compare, not to assume the gap closes.

How a note becomes a fix.

A pattern only enters this list once it has appeared in unrelated engagements and been reproduced from a frozen run. Nothing here comes from a screenshot or an opinion about your stack.

01 · REPRODUCE
The run is the evidence.

Every step, retry and dead end is logged as a trajectory your engineers can replay. A pattern that cannot be reproduced on demand is not a finding.

02 · ISOLATE
One step, not one platform.

Losses concentrate. Attributing a failure to the exact step that produced it is what turns a low score into a backlog rather than a rewrite.

03 · RE-RUN
Prove the delta.

The identical frozen suite runs again after the work. The pattern is closed when the completion appears, not when the ticket does.

Patterns are published in aggregate and anonymised. No client name, domain, score or trajectory is disclosed here or elsewhere on this site.

Find out which of these you have.

Two live journeys, simulated with the frozen fleet, returned as a w0 score with the trajectory evidence behind every failure.

Read next