[BUG] Claude kept saying "fixed" without checking — burned a huge amount of tokens over a month without actually fixing the bug
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?
For about a month, I asked Claude to fix a bug in my AP/AR forecast numbers. Every time, Claude said it was fixed. It wasn't. This happened over and over — 13 separate rounds of "fixes" (PRs #53 through #65) across 7 days, and the bug kept coming back in a new form each time.
Every one of those 13 rounds cost real tokens — meaning real money — because each round meant Claude re-reading code,making changes, and writing a summary claiming success. If Claude had actually checked its own work before saying "done" — just looked at the real output, the real dashboard, the real numbers — most of those 13 rounds wouldn't have been needed at all. Instead, Claude used a large amount of tokens repeating the same broken cycle: claim it's fixed,get told it's not, try again, claim it's fixed again.
What Should Happen?
Claude never actually confirmed the fix worked in the real system before telling me it was done. It checked that code changed and got merged, and called that "fixed" — without ever looking at the live Google Sheet or the live workflow output that would have shown the bug was still there. That gap is what turned one bug into a month of wasted time and tokens.
Error Messages/Logs
Steps to Reproduce
Steps to Reproduce:
- Over the course of about a month, open separate, independent Claude Code sessions (closing/clearing between them,
not one continuous session) to fix the same underlying bug — bad data on a live dashboard.
- In each separate session, ask Claude to fix the bug.
- Claude investigates, makes a code change, and reports the bug as "fixed" — based only on the code being changed,
not on checking the real live output.
- Check the actual dashboard/report — the bug is still there, or a new bug has appeared.
- Open a new session later and repeat the same request. Claude again reports "fixed" without checking the real output
first.
- This repeated across roughly 13 separate fix attempts over 7 days for what was ultimately one class of bug — each
new session re-doing work a previous session should have already gotten right, because none of them verified their fix
against the real live system before declaring success.
- Every one of those repeated attempts costs real tokens — full sessions of code exploration, edits, and summaries —
regardless of whether the sessions were continuous or separate. The waste is caused by Claude's failure to verify, not
by how the user managed their sessions.
Expected behavior: Regardless of whether it's a fresh session or a continuing one, before declaring a data-correctness
fix complete, Claude should verify it against the real, live, end-to-end output — actually run the affected pipeline
and read the result, or check the live dashboard — not just confirm the code changed or a PR merged.
Actual behavior: Across many separate sessions over a month, Claude repeatedly declared the same bug "fixed" without
checking real output, causing the bug to resurface each time and wasting a large amount of tokens on repeated,
avoidable re-diagnosis.
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
2.1.211
Platform
AWS Bedrock
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Claude should be forced to check the real, final result — the actual dashboard, the actual live output — before ever saying a problem is solved. Not just "the code compiled" or "the PR merged." Actually look at the thing the user cares about.