False-positive Usage Policy refusal (apiRefusalCategory: bio) kills long CNC/HMI coding session unrecoverably

Open 💬 0 comments Opened Jul 8, 2026 by MoBu23

Environment: Claude Code CLI 2.1.197, model claude-opus-4-8, Linux

Request IDs (2026-07-08, 12:57–13:15 UTC):

  • req_011CcpdR4x8XwKbNMXiSQWr2
  • req_011CcpdRMTZLLWUdg8fv9jqv
  • req_011CcpekiLZx3RsJQYUkX2yX

What happened

In a long-running, German-language coding session working on the touch UI (HTML/CSS/i18n) of an industrial HMI for a dental CNC milling machine, the API abruptly refused with:

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 in a new session or change your model.

The session transcript records:

type: system, subtype: model_refusal_no_fallback,
originalModel: claude-opus-4-8, apiRefusalCategory: "bio"

The refused user message was literally "ja starten" (German for "yes, go ahead") — approving the next step of a UI refactoring sprint. The session contains no biology-related content. My best guess: dental/medical-adjacent vocabulary accumulated in a very large context (dental prosthetics, zirconia discs, sintering, material traceability) tripped the bio classifier.

Once triggered, the session is unrecoverable

Every subsequent request in the same session was refused too (three refusals in a row), including a plain follow-up question asking what had been refused. Only starting a fresh session resolved it. This effectively poison-pills a long session: mid-task state was lost (a background agent had just completed with results that could no longer be processed).

Expected

  • No usage-policy refusal for benign industrial-software content, and/or
  • a recovery path after a classifier false positive, instead of every subsequent request in the session failing.

View original on GitHub ↗