AWS Security ChangesHomeSearch

AWS bedrock high security documentation change

Service: bedrock · 2026-06-10 · Security-related high

File: bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.md

Summary

Updated documentation for refusal responses: Added stop_details object with refusal category/explanation, clarified refusal behavior in streaming, and noted increased refusal rate on Claude Fable 5 due to content classifiers.

Security assessment

The change documents enhanced refusal mechanisms for security-sensitive content categories (e.g., 'cyber', 'bio'), directly addressing content safety controls and dual-use restrictions. This provides explicit evidence of security-focused content filtering improvements.

Diff

diff --git a/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.md b/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.md
index bcb47caf6..c33c0e9a4 100644
--- a//bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.md
+++ b//bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.md
@@ -289,4 +289,9 @@ Example responses with new stop_reason values:
-        "content": [
-            {
-                "type": "text",
-                "text": "I can't help with that request."
+        "stop_details": {
+            "type": "refusal",
+            "category": "cyber",
+            "explanation": "This request triggered restrictions on violative cyber content and was blocked under Anthropic's Usage Policy."
+        },
+        "content": [],
+        "usage": {
+            "input_tokens": 106,
+            "output_tokens": 1
@@ -294 +298,0 @@ Example responses with new stop_reason values:
-        ]
@@ -333 +337 @@ Example responses with new stop_reason values:
-    * **refusal** – Claude refuses to generate a response due to safety concerns
+    * **refusal** – The model was blocked by a content classifier before completing its response. The response may contain partial content if the classifier fired mid-stream. See `stop_details` for additional information about the restriction. This stop reason occurs at a materially higher rate on Claude Fable 5 due to its dual-use content classifiers.
@@ -342,0 +347,12 @@ Example responses with new stop_reason values:
+  * **stop_details** (object | null) – Additional information about why the response stopped. Present when `stop_reason` is `"refusal"`. May be null even on a refusal.
+
+    * **type** (string) – Always `"refusal"` when present.
+
+    * **category** (string or null) – The content category that triggered the restriction (e.g., `"cyber"`, `"bio"`). Null when the refusal does not map to a named category.
+
+    * **explanation** (string or null) – Human-readable explanation of the restriction. Not guaranteed to be stable across requests — do not parse programmatically.
+
+###### Note
+
+Branch on `stop_reason`, not on `stop_details`. The `stop_details` field is informational and can be null even when `stop_reason` is `"refusal"`. Refusals can also occur mid-stream: the classifier may fire after some content has already been streamed. In streaming mode, the refusal arrives as the final `message_delta` event with `stop_reason: "refusal"`; any content blocks streamed before the refusal are valid partial output.
+