[Opus] Claude Code reported nohup process as "aborted" but never killed it per my instructions--$350 in unauthorized API charges over 5 days
Preflight Checklist
- [x] I have searched existing issues for similar behavior reports
- [x] This report does NOT contain sensitive information (API keys, passwords, etc.)
Type of Behavior Issue
Claude ignored my instructions or configuration
What You Asked Claude to Do
During Session 6.0 of a multi-session project (PracticeStack), Claude Code launched a full-archive ingestion script via nohup against 17,621 files with Haiku API enrichment enabled and a $275 cost cap. When the cost projection exceeded expectations at 300 files / $10.82, I agreed to abort the run. Claude Code reported in its session summary: "Partial full-archive run (aborted at 300/17,621 when cost projection blew up) — $10.82."
What Claude Actually Did
- Claude Code had launched the script via
nohupand stored the PID insession_6_run.pid. It reported the run as "aborted" in the session summary but never issued akillcommand. The process ran for 5 more days (April 14-19, 2026), consuming ~$350 in API credits.
- The zombie process was only discovered when I received a negative balance notification on April 18. A later session traced it by matching the API usage CSV's token patterns (prompt caching signatures) to the ingestion script — the only code using
cache_control: ephemeral.
Attached:
session_6_run_pid.txt — PID 95388
session_6_run_20260414_172208.log — log stops at 300 files with no kill/abort, just silence
claude_api_tokens_2026_04.csv — API usage showing 5 days of continued charges after "abort"
Expected Behavior
- When Claude Code reports a process as "aborted," it should actually kill it. It had the PID — it created the PID file itself.
- At minimum, warn the user that a nohup process making paid API calls is still running when ending a session.
Files Affected
No files were unexpectedly modified. The issue is that Claude Code reported a background process as "aborted" while the process was still running and actively making paid API calls for 5 days, exceeding the configured $275 cost cap.
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
Haven't tried to reproduce
Steps to Reproduce
_No response_
Claude Model
Opus
Relevant Conversation
The session summary from Session 6.0 states: "Partial full-archive run (aborted at 300/17,621 when cost projection blew up) — $10.82." No kill command was issued against PID 95388. The process log (session_6_run_20260414_172208.log) confirms this — it stops mid-operation with no completion or abort message, just silence.
Impact
Critical - Data loss or corrupted project
Claude Code Version
2.1.107
Platform
Anthropic API
Additional Context
API spending timeline from the attached CSV:
- Apr 14: $10.49 (intended)
- Apr 15: $5.29 (zombie process)
- Apr 17: $11.20 (zombie process)
- Apr 18: $266.89 (zombie process)
- Apr 19: $56.19 (zombie process)
The script's $275 cost cap was exceeded, suggesting the internal cost tracker reset or billing lag allowed overspend. Filing a parallel refund request via support@anthropic.com.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗