Follow Discord
Sweep 25 Sep 2026 · 19:33Z Build v2.1.283 504 read Stable v2.1.274 Latest v2.1.283 Next v2.1.283 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.280 ·

New 'safety_monitor_blocked' reason recognized as a hard failure and a refusal

Tool calls blocked by the safety monitor now count as an API error and are treated as a refusal, alongside dlp_request_denied

Group of 2 Under the hood Internal Changes
JSON All of v2.1.280
Under the hoodTier: how much it should matter to you
1Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
Error HandlingArea: what it touches
Internal ChangesKind: in v2.1.280,
Internal ChangesSection of the release

What

A new failure reason, safety_monitor_blocked, is now recognized in two places:

  • The tool/DLP failure classifier, which previously only special-cased dlp_request_denied, now also treats safety_monitor_blocked as a hard failure reported as an API error.
  • The predicate that decides whether an API response counts as a refusal now also treats apiError === 'safety_monitor_blocked' as a refusal, alongside the existing stop_reason: 'refusal' and dlp_request_denied checks.

Why

This makes sure that when Claude Code's safety monitor blocks a response, that outcome is consistently surfaced as an error and treated as a refusal, matching how other blocked/denied conditions already behave.

See this entry in the whole of v2.1.280 →

Feedback