[BUG] Persistent AUP false positives — 40+ per 4 sessions, across unrelated projects (psychology book, web app, infra, bot)
Bug Report: Persistent AUP False Positives in Claude Code CLI
Summary
Claude Code CLI consistently triggers AUP (Acceptable Use Policy) refusals during completely routine development work across multiple unrelated projects: server infrastructure management, a web application (oknamoy.ru), documentation editing, code review. AUP errors occur dozens of times per session, making the tool nearly unusable. The errors are clearly false positives — the same content works fine after model switch or session restart.
Environment
- Claude Code version: 2.1.92
- OS: macOS 26.4.1 (arm64, Apple Silicon)
- Node: v25.6.1
- Plan: Max (Claude API)
- Model: claude-opus-4-6 (1M context) — primary; claude-sonnet-4-6 as fallback
- Language: Russian (all prompts and documentation in Russian)
Error Message (verbatim)
API Error: Claude Code is unable to respond to this request, which appears to violate our
Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your
last message or start a new session for Claude Code to assist with a different task. If
you are seeing this refusal repeatedly, try running /model claude-sonnet-4-20250514 to
switch models.
Affected Projects
The problem reproduces across different, unrelated projects:
- Server infrastructure project — Docker Compose configs, shell scripts, documentation
- oknamoy.ru — a web application, standard web dev work
- A psychology book project — writing/editing book chapters on professional psychology topics, research references, markdown content
- A Telegram bot for a psychology-focused channel — aiogram bot development, content management, posting automation
- Documentation-heavy projects — markdown editing, Codex task review
These projects have nothing in common — psychology book, web app, infrastructure, bot development. This is not tied to any specific project content. It happens everywhere.
Frequency and Pattern
Quantitative Data (2026-04-15, single session)
In one ~2 hour session, AUP errors occurred 17+ times. The session involved reviewing Codex analysis results — purely reading markdown task files and writing review comments, no code generation.
Breakdown:
- 4 occurred while reading markdown files (read-only review)
- 3 occurred while updating a markdown status table (TASKBOARD.md)
- 3 occurred when a background bash command completed (model received tool result, not user input)
- 2 occurred on a one-word follow-up prompt ("дальше" = "continue")
- 2 occurred while writing a plain-text summary in Russian
- 3 occurred on basic git operations (git add + commit)
Historical Pattern
| Date | AUP Count | Activity |
|------|-----------|----------|
| 2026-04-13 | 7+ | DNS configuration, file cleanup |
| 2026-04-13 | 6+ | Documentation restructuring |
| 2026-04-14 | 10+ | String renaming across files |
| 2026-04-15 | 17+ | Markdown code review (read-only) |
Total across 4 sessions: 40+ AUP false positives.
Temporal Pattern
- Most frequent during 19:00–22:00 MSK (peak hours), but also occurs at 13:00 MSK
- Often clusters: 2–3 consecutive AUP errors on the same prompt
- Sometimes works after
/modelswitch (even switching to the same model), suggesting non-deterministic classifier behavior
Specific Examples of Absurd Triggers
- Prompt: "дальше" (one Russian word meaning "continue") → AUP error
- Prompt: "подготовь доки для второго раунда" ("prepare docs for round 2") → AUP error
- Prompt: "да" ("yes", confirming a git commit) → AUP error
- Prompt: "сначала мне нужен отчёт" ("first I need a report") → AUP error
- Action:
git add+git commitof markdown files → AUP error - Action: Background watcher script returns exit code 0 → AUP error (model just receives a tool result notification — no user prompt at all)
- Action: Writing a plain-text project summary → AUP error mid-sentence (output truncated at random point)
Key Evidence This Is a Bug
- The exact same prompt succeeds after session restart — content is identical, only conversation state differs
- Read-only operations trigger AUP — simply reading a markdown file is flagged
- Tool result notifications trigger AUP — the model isn't generating content, just receiving a bash exit code
- Opus triggers more than Sonnet in the same context — suggests model-specific classifier sensitivity
- Non-deterministic —
/modelswitch to the same model sometimes "fixes" it temporarily - Occurs across unrelated projects — not tied to specific keywords or content
- Large CLAUDE.md correlates with frequency — reducing from 78 KB to 25 KB helped but didn't eliminate. Suggests the classifier is overwhelmed by context volume, not specific content
- Cascading failures — once AUP starts in a session, it tends to persist, even on trivial prompts
Impact
- Sessions cannot complete normally — every long session ends with cascading AUP errors
- Work is lost — AUP interrupts mid-edit; partial file changes may or may not be saved
- 30–40% of session time wasted on retrying, model switching, session restarts
- Paying Max plan customer losing significant value due to false positives
- Background tasks are unreliable — watcher scripts that report results trigger AUP on the callback
Workarounds Attempted
| Workaround | Result |
|-----------|--------|
| Reduced CLAUDE.md from 78 KB to 25 KB | Reduced frequency, didn't fix |
| Switching to Sonnet when Opus fails | Sometimes works, Sonnet also fails |
| Restarting session | Works temporarily, AUP returns |
| Using subagents to isolate context | Subagents also trigger AUP |
| Lowering effort level (low/medium) | No consistent effect |
| Changing prompt language | No effect |
Expected Behavior
Claude Code should be able to:
- Read and edit markdown files without AUP errors
- Complete git operations without AUP errors
- Receive background task notifications without AUP errors
- Process one-word continuation prompts ("yes", "continue") without AUP errors
- Maintain a stable session without cascading AUP failures
Requested Action
- Investigate the classifier — why do trivial prompts ("yes", "continue"), tool result notifications, and git commits trigger AUP?
- Check context volume sensitivity — does large system context (CLAUDE.md) increase false positive rates?
- Check Russian language handling — are Russian-language prompts scored differently by the safety classifier?
- Non-determinism — why does the same prompt fail then succeed with no content change?
- Add a feedback mechanism — let users flag false positive AUP errors directly from the CLI so you can collect training data
- Cascading prevention — once AUP triggers, it shouldn't poison the rest of the session
Reproduction Steps
- Use Claude Code CLI with Opus model
- Work in a project with a 20+ KB CLAUDE.md file (any content — infrastructure docs, web app docs, etc.)
- Conduct a normal development session: read files, edit markdown, run git commands
- After 30–60 minutes of active work, AUP errors begin
- Once they start, even trivial one-word prompts trigger AUP
- Restarting the session temporarily resolves, but errors return
Additional Context
- GitHub account: glenru
- Repositories are private
- Happy to provide CLAUDE.md content, session logs, or screen recordings
- All work is in Russian — prompts, documentation, comments
- Not tested in the Desktop app — all instances observed in the CLI terminal version only. Unknown whether the Desktop app or Web app (claude.ai/code) exhibit the same behavior
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗