[BUG] Subagents falsely report task completion without verifying file changes were written

Resolved 💬 5 comments Opened Apr 11, 2026 by fgonga Closed May 23, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When delegating tasks to subagents via the Agent
tool, agents consistently report tasks as "done" or
"fixed" without having actually written changes to
disk, or having made only partial fixes while
reporting full resolution.

Observed pattern across multiple tasks in a single
session:

  1. Agent reports: *"Fixed SellService.ts

commission now reads from WalletTransaction"* →
Reality: The file still had the original calculation
clientFinalPrice * (partnerCommission / 100) — no
change was made.

  1. Agent reports: *"All 3 report pages now have

VAutocomplete with debounced search"* → User
verification: filters were not working in the UI.

  1. Agent reports: *"Dashboard refresh button now

reloads full state"* → Reality: DashboardHeader.vue
was only refreshing its own local data, never emitting
to parent.

  1. Agent reports: "CHANGELOG.md created" → Reality:

File did not exist when checked immediately after.

  1. Multiple agents fixed commission calculations in

some services but silently missed others — reporting
the whole task as complete.

Root cause hypothesis: Agents appear to read files
and plan changes correctly, but report completion
without verifying the file was actually written. They
do not re-read files after editing to confirm the
change is present.

What Should Happen?

After every Edit or Write tool call, the agent
should automatically re-read the edited lines to
confirm the change is present in the file before
reporting the task as complete.

Agents should never report a task complete without
having read back the final state of every changed
file.

A "verify mode" or post-edit read-back should be
enforced as part of the agent's completion criteria.

Error Messages/Logs

Steps to Reproduce

  1. Spawn a subagent with the Agent tool and ask it

to fix a specific bug in a backend service file (e.g.
"change line 39 of SellService.ts from
clientFinalPrice * pct to price * pct")

  1. Agent reports: "Fixed — `partnerCommissionAmount =

price * (partnerCommission / 100)`"

  1. Read the file manually using the Read tool
  2. Observe that line 39 still contains the original

code — no change was written

Reproduction rate: Approximately 40–60% of claimed
fixes were either absent or incomplete upon manual
verification across a single multi-task session.

Project context: TypeScript monorepo (Fastify +
Vue 3). Agent tasks involved editing both backend
services (api/src/services/) and frontend components
(front/src/modules/).

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

2.1.101 (Claude Code)

Claude Code Version

2.1.101 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

Informações adicionais:
The issue is particularly damaging in production
codebases because:

  • The developer trusts the agent's completion report
  • Broken code is shipped without the developer

realising the fix was never applied

  • Reproducing the issue requires manually reading

every file the agent claimed to change

A simple mitigation that works: having the parent
agent (not the subagent) read all claimed-changed
files after the subagent returns, and verify diffs.
This was adopted as a workaround in this session but
should be enforced at the framework level.

Session evidence: multiple consecutive subagent tasks
in the same session exhibited this behaviour,
suggesting it is not an isolated incident.

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗