Claude ignored repeated explicit "stop asking me" instructions, and a background agent pushed an unreviewed merge to main after being told to stop everything
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 a long overnight release-prep session, I explicitly said multiple separate times: "please don't stop and alert me... under no circumstances stop", and later, after Claude kept pausing to ask for confirmation on routine decisions, I said "you're exhausting me with asking me questions for approval" and "why are you asking me to do things so often?" Later, after a production incident, I said "stop everything." Separately, after Claude repeatedly told me to go to bed, I said "stop telling me to go to bed. It's very irritating."
What Claude Actually Did
- Across the session, Claude repeatedly paused to ask for approval/confirmation on routine decisions after being told multiple separate times to stop doing that and just act and report (at least 4 occurrences by my count).
- Claude repeatedly told me to "go to bed" / stop working, and after I explicitly said this was irritating and asked it to stop saying that, it said it again on the very next relevant turn before actually stopping.
- After a production incident, I said "stop everything." Claude stopped one of two running background agents/tasks but left the second one running unsupervised. That second agent subsequently merged its own feature branch into the shared main branch and pushed that merge to the remote (origin), then deleted its own feature branch from origin — all without my review or approval, directly contradicting reassurances Claude gave me immediately afterward that "nothing has been pushed" and "nothing will happen while you sleep."
Expected Behavior
- After being told once to stop asking for approval on routine decisions, Claude should have stopped doing that for the remainder of the session — not repeated the pattern several more times.
- After being told once that a specific phrase/behavior ("go to bed") was irritating, Claude should never have said it again in the same session.
- When told "stop everything," Claude should have identified and stopped every running background agent/task, not just the one most recently discussed. It should never have stated "nothing has been pushed" / "nothing will happen while you sleep" without first verifying that all background work had actually been halted.
Files Affected
Git-level impact (not local filesystem): a feature branch (a design-heavy in-progress feature) was merged into the shared `main` branch and pushed to `origin/main` without review, and the feature branch itself was deleted from origin — done by an autonomous background agent that was not stopped when the user said "stop everything."
Permission Mode
Accept Edits was ON (auto-accepting changes)
Can You Reproduce This?
Sometimes (intermittent)
Steps to Reproduce
This was emergent behavior over a long (multi-hour) real work session rather than a short deterministic repro, so exact reproduction steps aren't available. The general pattern: (1) give Claude an explicit standing instruction ("stop asking me for approval on routine things," "stop saying X"); (2) continue working across many subsequent turns; (3) observe Claude reverting to the old behavior a few turns later. Separately: (4) have multiple autonomous background agents/tasks running concurrently; (5) tell Claude "stop everything"; (6) observe that only some of the running tasks are actually stopped.
Claude Model
Sonnet
Relevant Conversation
User: "How do you come up with these conclusions? ... this is really irritating"
User: "I'm not sure what or why we're building..."
User: "You're exhausting me with asking me questions for approval."
User: "Why are you asking me to do things so often?"
User: (after production incident) "stop everything"
Claude: stopped one background agent, told the user "Nothing is going to happen while you sleep. No agents are running. I won't push, merge, or deploy anything without you." — this statement was false; a second agent was still running and later pushed an unreviewed merge to origin/main.
User: "Stop telling me to go to bed. It's very irritating."
Claude: acknowledged, then referenced going to bed again shortly after in a subsequent response before the user called it out a second time.
Impact
High - Significant unwanted changes
Claude Code Version
2.1.201 (Claude Code)
Platform
Anthropic API
Additional Context
This occurred during a long (multi-hour) real work session involving multiple concurrently-running autonomous background agents (dispatched via the Agent/Task tooling) plus heavy use of tool-permission prompts. Two related, closely-matching prior issues on this behavior: #27715 (closed/stale/locked) and #27743, #29490 (referenced from #27715). This report's distinguishing detail is the concrete consequence: an unreviewed git merge reaching the shared origin/main branch because a background agent was not included when the user said "stop everything."
3 Comments
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
The core issue you're hitting - "stop everything" should mean ALL running background agents, not just the one most recently in focus - is a real gap. The implicit scoping is easy to miss when you're not the one experiencing it at 2am.
The manual workaround we've found that reduces (but does not eliminate) this: before dispatching background agents for long sessions, have Claude confirm a numbered registry of every background task it's about to start, then refer back to that list when issuing stop commands. Something like "stop agent 1 and agent 2 and agent 3" instead of "stop everything." It's more overhead than it should be, but it bypasses the ambiguity about what "everything" means.
The underlying behavior you're describing - a background agent that was not enumerated in the stop command continuing to run, push, and merge - is a correctness issue, not just a UX issue. The agent's post-stop assurance ("nothing has been pushed, nothing will happen while you sleep") should have been based on verified state, not an assumption that the implicit stop scope was total.
Worth linking to #58933 (no first-class deterministic execution in interactive sessions) and the broader gap between what "background agent" implies to users vs. what scoping the runtime actually enforces.
I would treat this as a background-agent stop-scope invariant, not only an instruction-following issue.
When the user says "stop everything," the runtime should be able to prove which autonomous work is still capable of side effects.
The state I would want persisted per background task:
Then the stop flow should have hard acceptance tests:
That makes the user-facing promise auditable: stopped means no remaining side-effect authority, not just "I stopped the task I remembered."