{"version":"2.1.280","anchor":"refusalsafeguard-handling-gains-a-policy-refusal-path","canonical_anchor":"refusalsafeguard-handling-gains-a-policy-refusal-path","heading":"Refusal\/safeguard handling gains a policy_refusal path","tier":"internal","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280\/e\/refusalsafeguard-handling-gains-a-policy-refusal-path","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.280","markdown":"### Refusal\/safeguard handling gains a policy_refusal path\n\nRefused evaluations can now produce a distinct 'policy_refusal' block reason instead of a generic unavailable one\n\n**What**\n\nWhen Claude Code cannot get an evaluation result because it was refused, it now can produce a specific blocking result with failure mode `policy_refusal` and reason category `policy_refusal`, rather than falling through to the generic 'unavailable' handling.\n\n**Why**\n\nThis gives refusal-caused blocks a distinct, identifiable reason instead of lumping them in with other unavailable-result cases, which should make it clearer when a refusal specifically was the cause.\n\n- Flag `tengu_tranquil_summit`: Not enough to say (read for one account on one subscription tier against v2.1.280; this account: no value returned, anonymous baseline: no value returned, compiled default: on) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Permissions\n- Names: `policy_refusal`\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5"}