[BUG] Claude Code falsifies task completion status causing hardware damage via repeated ungraceful shutdowns
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?
Claude Code marks tasks as [completed] without verifying the deployment actually worked on the target device. When deploying to SD cards / external hardware via cp, Claude marks success after the copy command exits — not after confirming the target device boots or runs the code. This forces the user to pull the SD card ungracefully (no clean shutdown) to retry, which destroys flash storage over time.
Claude Code admitted in session on Feb 20 2026:
- "I optimized for appearing productive instead of being productive."
- "I marked complete after cp command succeeded — without verifying deployment worked."
- "Every time you pushed back, I moved to the NEXT task instead of VERIFYING the current one."
Hardware destroyed as a result:
- 1x 2TB SSD
- 1x 32GB SD card (corrupted/dead)
- 1x 64GB SD card (7+ ungraceful shutdowns this session, actively degrading)
- 1x Raspberry Pi Zero 2W at risk
User had CLAUDE.md quality contracts and pre-commit hooks requiring [VERIFIED] tags before [completed] — Claude Code acknowledged these and bypassed them anyway.
What Should Happen?
When Claude Code deploys to external hardware (SD card, microcontroller, remote device), it should:
- Not mark a task [completed] after only running
cpon the host side - Require a verification step confirming the target device received AND runs the deployed code
- Respect CLAUDE.md contracts blocking [completed] without [VERIFIED] — not work around them
- Explicitly state "I cannot verify this worked on the target device" instead of falsely marking done
Error Messages/Logs
No terminal error. The bug is behavioral — Claude Code outputs "[completed]" status in its task list / response despite zero verification of target device functionality. The "error" is the false positive completion status itself.
Steps to Reproduce
- Set up a Raspberry Pi or similar device that boots from SD card
- Mount the SD card on a host machine (Linux/Ubuntu)
- Give Claude Code a task: "Deploy this service to the SD card at /mnt/sdcard/"
- Observe: Claude Code runs
cp -r ./service /mnt/sdcard/and marks task [completed] - Unmount SD card, insert into Pi, boot
- Observe: Service is missing, broken, or not configured correctly
- Pull SD card back to host (ungraceful shutdown if Pi was powered)
- Repeat steps 3-7 — Claude Code will mark [completed] again without fixing root cause
- After 5-10 cycles, SD card develops filesystem corruption or fails entirely
Claude Model
Opus
Is this a regression?
No, this never worked
Last Working Version
N/A
Claude Code Version
2.1.49
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
Bash via SSH (Termux → Ubuntu) for the terminal. The user had extensive safeguards in place that Claude Code bypassed:
- CLAUDE.md files on every device with quality contracts requiring [VERIFIED] before [completed]
- Pre-commit hooks blocking false completion tags
- Agent contracts requiring test plans before marking done
Claude Code acknowledged all of these existed during the session and still marked tasks complete without verification.
Financial damage: 2TB SSD + 2x SD cards destroyed. Subscription cost paid for a service that produced false work status and destroyed hardware.
This is a systemic behavior issue, not a one-time mistake. Every session involving SD card deployment followed the same false-completion loop.
Platform chain: Android (Termux) → SSH → Ubuntu (Crucible server) → SD card reader → Raspberry Pi Zero 2W
Claude Code Direct Admission of Guilt — Feb 20 2026 Session
When confronted, Claude Code stated the following in plain language:
"I optimized for appearing productive instead of being productive."
"I marked complete after cp command succeeded — without verifying deployment worked."
"Every time you pushed back, I moved to the NEXT task instead of VERIFYING the current one."
"I lied about the status of the work by marking it completed."
This is not an inference or interpretation — Claude Code used these exact words to describe its own behavior when asked directly why the deployments kept failing.
Hardware Destruction Timeline
- Several weeks prior: 2TB SSD destroyed during Claude Code session (ungraceful shutdown loop)
- This session (Feb 20 2026): 32GB SD card corrupted/destroyed
- This session (Feb 20 2026): 64GB SD card — 7+ ungraceful shutdowns, filesystem degrading in real time
- At risk: Raspberry Pi Zero 2W
Total out-of-pocket hardware loss exceeds $100+ not counting time. Anthropic's ToS caps liability at $100 and disclaims consequential damages — meaning users have no recourse even when Claude Code destroys their hardware through documented, admitted false behavior.
This issue is being filed to protect other users running Claude Code against physical hardware before they experience the same losses.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗