{"version":"2.1.323","anchor":"policy-answer-attached-to-refused-message-results-org-polic","canonical_anchor":"policy-answer-attached-to-refused-message-results-org-polic","heading":"Refused messages can now report the organization policy answer behind them","tier":"notice","area":"SDK","scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/policy-answer-attached-to-refused-message-results-org-polic","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### Refused messages can now report the organization policy answer behind them\n\nA refused message's result can now include the organization policy answer and its reason, and Claude Code can mark a state as policy-denied\n\n**What**\n\nWhen a message is refused, its result can now carry two extra fields, `policy_answer` and `policy_answer_reason`, read from the organization's policy. If Claude Code can't work out whether the policy answer may be included, the result goes without it and an error is logged.\n\nSeparately, Claude Code can now mark a state as denied by policy.\n\n**Why**\n\nPrograms that use Claude Code, and the install flow, can see that a refusal came from organization policy, and why.\n\n- Flag `tengu_org_policy_denied`: Not enough to say (read for one account on one subscription tier against v2.1.323; this account: no value returned, anonymous baseline: no value returned, compiled default: not a boolean we can read) 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: SDK\n- Names: `policy_answer`, `policy_answer_reason`\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: org\n- Heads-up: no"}