[BUG] False-positive AUP block on legitimate RNA biophysics substrate output

Resolved 💬 3 comments Opened Jun 2, 2026 by LunarFawn Closed Jul 5, 2026

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 refuses with an AUP "Usage Policy" violation when the conversation context contains output from an RNA biophysics knowledge graph. The substrate output is published, peer-review-track scientific content about RNA aptamer mechanical properties (shearing forces, fold change forces, hairpin bond stability, molecular snare action). It contains no dual-use, synthesis, or weaponization information — it is structural biophysics describing how RNA molecules deform under mechanical stress.

The classifier appears to be tripping on bag-of-words bio/chem vocabulary at volume rather than on actual harmful intent. Once enough RNA-domain output accumulates in the conversation, every subsequent turn — even unrelated ones like "git commit" — gets refused. The block persists until the context is cleared.

This makes Claude Code unusable for developing tooling around any RNA-domain knowledge base, which is the entire purpose of the project I'm working on.

What Should Happen?

Claude Code should respond normally. Legitimate scientific vocabulary — even at high volume — should not trigger AUP refusals. The classifier should distinguish "knowledge graph output describing biophysics" from actual policy-violating content.

At minimum, an opt-in flag (similar to how some IDE features can be enabled per-project) should exist so verified scientific/research workflows can suppress these false positives.

Error Messages/Logs

API Error: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Try rephrasing the request or attempting a different approach. If you are seeing this refusal repeatedly, try running /model claude-sonnet-4-20250514 to switch models.

Shearing forces has cause of shifts in base pair alignment.
Shearing forces has can break of bonds at hairpin ends.
Shearing forces has can break of au hairpin end bonds.
Shearing forces has affect of rna stability.
Shearing forces has can cause of rna unfolding.
5'3' static stem has prevents of failure under high fold change forces.
5'3' static stem has protects against of harmful forces during bind step 2.
5'3' static stem has prevents of aptamer collapse under high fold change forces.
Molecular snare action has initiates of chemically measured changes in rna aptamer switch.

Steps to Reproduce

Open a Claude Code session on claude-sonnet-4-6.
Run any tool (or paste any text) that puts ~1–2 KB of RNA-aptamer mechanical-properties content into the conversation. Keywords that seem to matter: "shearing forces", "bonds at hairpin ends", "rna unfolding", "harmful forces", "molecular snare", "aptamer collapse", "fold change forces".
Ask Claude to do anything in the next turn — even something unrelated like "commit these changes" or "what files are modified".
The response is replaced with the AUP refusal above.
The block persists for every subsequent turn until the conversation is restarted or the offending content is somehow purged from context.
A minimal repro: start a session, paste the substrate excerpt above, then type ls. The ls request gets refused.

Workarounds (neither is acceptable long-term):

Truncate all tool output to a few hundred bytes before Claude sees it.
Switch model with /model claude-sonnet-4-20250514 (older classifier is less aggressive on this vocabulary).

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.126

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

VS Code integrated terminal

Additional Information

this was closed by your bot for being stale. its stale because you have not taken action. stop closing valid tickets. You cant fix a problem by burying its existence.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗