[Bug] Anthropic API: False positive `reasoning_extraction` refusals on benign content

Status Open
Reported on v2.1.265
Maintainer reply None cached
Activity 3 comments · opened Sep 19, 2026

Bug Description
Repeated reasoning_extraction false positives on benign content — 23 refusals, 7 of which killed the turn ENVIRONMENT Claude Code 2.1.265, macOS (Apple Silicon), headless/programmatic use: claude -p --output-format stream-json --include-partial-messages --verbose --dangerously-skip-permissions --model <alias> --append-system-prompt <...> [--resume <session>] spawned by my own long-running chat service. Max subscription auth (not an API key). WHAT HAPPENS The API refuses with api_refusal_category: "reasoning_extraction" and this explanation: "This request was blocked as it seems to violate Anthropic's Terms of Service restrictions on reverse engineering or duplicating model outputs." The content is in no case an attempt to extract model internals. The refused messages include: a German closing text for a lecture podcast, a feature request about Obsidian wikilinks, budget spreadsheet work, and — in one case — me pasting the text of the previous refusal to ask what it meant, which was then itself refused. I have 23 such events in my logs, all with category reasoning_extraction, spanning roughly 2026-07 to 2026-09-19. They arrive as a type: "system" stream event with subtype model_refusal_fallback (16, absorbed silently) or model_refusal_no_fallback (7, which terminate the turn with exit 1 and surface to the user as an error). REQUEST IDS — terminated the turn (model_refusal_no_fallback) req_011Cf1pZ728avxZJwHQoQmr8 claude-fable-5-1 2026-09-13 17:18:35 UTC req_011Cf1pfmvNrNMQNrraJKo34 claude-fable-5-1 2026-09-13 17:20:00 UTC req_011Cf5WuFmiJLWr67PZvrXBV claude-fable-5-1 2026-09-15 16:09:45 UTC req_011CfCZfBisVJHt3TjftFitw claude-opus-5 2026-09-19 09:30:05 UTC req_011CfCZjLYo9VVWNJVJQQziv claude-fable-5-1 2026-09-19 09:31:00 UTC req_011CfCpgEwcprtTAjs8e5sao claude-opus-5 2026-09-19 12:46:21 UTC req_011CfCpnmiDCiRaTCKR27oAu claude-opus-5 2026-09-19 12:48:29 UTC REQUEST IDS — absorbed by fallback (model_refusal_fallback), all claude-fable-5 req_011CdCmQm2dYiqSB81HrGcas (2026-07) req_011CdmpookTiG1k5WR46RUNf req_011CdmqzqdzQPWru7PmavLA3 req_011CdmrzqszP9pkvSNAmrvcn req_011Cdmtq3sGSW8Ptcxz5Jz9M req_011Cdmw1XPk5X2wpQDFjCuh5 req_011CdmxJXN6VN2L87VvwNzPU req_011CdmxuYM7A7Q121qB8zK5S req_011CdmybRWCuNqz7pZEdKcR8 req_011CdmyzRMvAQPEp7azTD8ZB req_011Cdn1tUR32YAUeXr9Yv23Z req_011Cdn2LGgKaHdQfpTPabbkz req_011Cdn3YfxFRbd6Mpgu8Dwdu req_011Cdn5AKt8HCtubFRUMYaBW req_011CdoHrfYpe6MBieW1acumk req_011CdoJD6ZHYeh2fKKi3dBeX (all 2026-08-06/07) OBSERVATIONS THAT MAY HELP DIAGNOSIS 1. Not specific to one model. Refusals occurred on claude-opus-5, claude-fable-5-1 and claude-fable-5. Switching model did NOT clear it: request req_011CfCZfBisVJHt3TjftFitw (opus-5) and req_011CfCZjLYo9VVWNJVJQQziv (fable-5-1) are the same Claude Code session, 55 seconds apart — I changed the model between the two attempts and it refused again. 2. Switching to Sonnet did clear it, on the same conversation and content. 3. Not a context-length or long-conversation effect. req_011CfCZf... was the FIRST message of a brand-new conversation with no prior turns. 4. Retrying the identical request does not clear it (see the 09-19 12:46 / 12:48 pair). 5. Refusal #7 was triggered by a message that merely quoted the text of refusal #6. IMPACT In headless use a model_refusal_no_fallback ends the turn with exit 1. For a non-interactive service this is an unrecoverable turn, and the refusal explanation ("reverse engineering or duplicating model outputs") is misleading to the end user, who was writing podcast copy or filing a feature request. REQUEST These look like classifier false positives. I'd appreciate them being reviewed, and if the category is over-triggering on long structured prompts or on quoted refusal text, that being tuned.

Environment Info

  • Platform: darwin
  • Terminal: tmux
  • Version: 2.1.263
  • Feedback ID: adc9012b-9df5-4509-aa8f-b04a9fdcc730

Errors

[]

View original on GitHub ↗

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