anthropics / anthropics/claude-code

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

Open
#95,561 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:model bug duplicate platform:macos
Dominant language
TypeScript
Stars
146k
Forks
23.8k
PR merge metrics
PR metrics pending

Description

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

[]

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test entry point is identified. Start by reproducing the reported claude -p --output-format stream-json invocation and examining model_refusal_fallback and model_refusal_no_fallback events; done means benign requests no longer trigger the reported false-positive refusals or misleading termination behavior.

Written by the indexing model from the issue text.

Assessment

Domain
api, cli
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.