DEV Community

Elizabeth Fuentes L for AWS

Posted on

How to Fix Claude Fable 5 Data Retention Error on Amazon Bedrock

Claude Fable 5 fails on Amazon Bedrock with a 400 error before processing a single token: "data retention mode 'default' is not available for this model". It is not a bug in your code, and no client setting fixes it. It is an account-level data retention policy, and you can change it with two API calls, once you understand what you are agreeing to.

You switch your coding agent to Claude Fable 5 on Amazon Bedrock and get this:

API Error: 400 data retention mode 'default' is not available for this model
Enter fullscreen mode Exit fullscreen mode

This hits any client that routes through Bedrock, not only direct API calls. If you use Claude Code with Amazon Bedrock (CLAUDE_CODE_USE_BEDROCK=1), selecting Fable 5 with /model fails with this exact error, and nothing in settings.json or any environment variable fixes it. The same applies to SDK calls, agent frameworks, and anything else authenticating against your Bedrock account: the policy lives in the account, so the fix below unblocks all of them at once.

What You'll Learn:

  • Why Fable 5 is blocked by default on every Bedrock account, and how the data retention mode cascade works
  • How to diagnose it with one read-only API call
  • The fix: two PUT calls (and why one is not enough)
  • The privacy trade-off you accept by opting in
  • The pricing, and when Fable 5 is worth 2x the cost of Opus 4.8 (and when it is not)

Why Does Bedrock Block Claude Fable 5 by Default?

Claude Fable 5 (and Claude Mythos 5) are Covered Models: they require prompts and completions to be retained for up to 30 days for trust and safety. Zero data retention is not available for them.

Amazon Bedrock enforces this with a data retention mode, not an on/off toggle:

Mode What it means
inherit No opinion at this scope, defer to a broader scope (default for new accounts)
default The model's own policy applies; AWS may retain data for abuse detection, the provider does not receive it
none Zero data retention
provider_data_share Data is retained and shared with the model provider per their requirements. Required by Fable 5

The effective mode resolves in cascade:

effective mode = first non-inherit value of (project → account → model default)
Enter fullscreen mode Exit fullscreen mode

Each model declares which modes it accepts via allowed_modes. Fable 5 only accepts ["provider_data_share"]. A new account sits at inherit, which resolves to default for Fable 5, so Bedrock blocks the request. You always control your retention policy: Bedrock will never share your data with a model provider unless you explicitly opt in.

Step 1: Confirm the Diagnosis (Read-Only)

Ask Bedrock for the model's status in your account. The examples use a Bedrock API key; SigV4-signed requests work too.

curl https://bedrock-mantle.us-east-1.api.aws/v1/models/anthropic.claude-fable-5 \
  -H "x-api-key: $BEDROCK_API_KEY"
Enter fullscreen mode Exit fullscreen mode

If retention is the problem, the response says so explicitly:

{
  "id": "anthropic.claude-fable-5",
  "status": "unavailable",
  "status_reason": "This model is not available under data retention mode 'default'.",
  "data_retention": {
    "mode": "default",
    "source": "model_default",
    "allowed_modes": ["provider_data_share"]
  }
}
Enter fullscreen mode Exit fullscreen mode

Why this matters: "source": "model_default" tells you no account or project override exists yet. That is exactly what the fix changes.

Step 2: Understand What You Are Opting Into

Setting provider_data_share means your prompts and completions are shared with the model provider and retained for up to 30 days for trust and safety purposes. It applies account-wide, or project-wide if you scope it to a project.

Two details that matter:

  • It only changes behavior for models that require it. Models whose allowed_modes include default (like Claude Opus 4.8) keep retaining data inside AWS only, even with provider_data_share set.
  • If your organization requires zero data retention for compliance, do not set this. Contact your AWS account manager; ZDR access to these models is evaluated per account, per model.

You can also enforce a retention policy org-wide with a Service Control Policy using the bedrock:DataRetentionMode condition key, so nobody flips this by accident. The AWS documentation includes the exact policy.

Step 3: Apply the Fix (Two Endpoints, Not One)

This is the part that cost me time. Bedrock exposes the setting on two planes, and in my account I had to set both before the model became available:

# 1. Bedrock control plane
curl -X PUT https://bedrock.us-east-1.amazonaws.com/data-retention \
  -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "provider_data_share" }'

# 2. Bedrock model inference plane
curl -X PUT https://bedrock-mantle.us-east-1.api.aws/v1/data_retention \
  -H "x-api-key: $BEDROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "provider_data_share" }'
Enter fullscreen mode Exit fullscreen mode

After setting only the first one, the model still reported "source": "model_default" and stayed unavailable. After the second call, it switched to "source": "account".

There is no console UI for this at launch. API or SDK only.

💡 If your token returns not authorized to perform: bedrock:PutAccountDataRetention, your identity needs that IAM action. Bedrock API keys created with minimal scope will not have it.

Step 4: Verify

curl https://bedrock-mantle.us-east-1.api.aws/v1/models/anthropic.claude-fable-5 \
  -H "x-api-key: $BEDROCK_API_KEY"
Enter fullscreen mode Exit fullscreen mode
{
  "id": "anthropic.claude-fable-5",
  "status": "available",
  "data_retention": {
    "mode": "provider_data_share",
    "source": "account",
    "allowed_modes": ["provider_data_share"]
  }
}
Enter fullscreen mode Exit fullscreen mode

Back in your client, select the model and the 400 error is gone. No client-side configuration changes needed. In Claude Code on Bedrock, run /model and pick Fable 5; the same account-level change covers it.

What Does Claude Fable 5 Cost?

Check the price before you check the box. Fable 5 is 2x the price of Opus 4.8 per token:

Model Input $/1M tokens Output $/1M tokens
Claude Fable 5 $10.00 $50.00
Claude Opus 4.8 $5.00 $25.00
Claude Sonnet 4.6 $3.00 $15.00
Claude Haiku 4.5 $1.00 $5.00

Prices from the Anthropic model catalog at the time of writing; Bedrock pricing may vary by region. Always confirm on the Amazon Bedrock pricing page before committing a workload.

Two cost details specific to Fable 5:

  • Thinking is always on and billed as output tokens. You cannot disable it, only tune depth with the effort parameter.
  • Single turns run longer. A hard task can legitimately consume minutes and a large token budget in one request. Budget per task, not per request.

When to Use Fable 5 (and When Not To)

Paying 2x only makes sense when the task actually needs the extra capability.

Use Fable 5 when:

  • ✅ Long-horizon autonomous work: overnight coding runs, multi-hour agentic tasks that must complete without human correction
  • ✅ Your hardest unsolved problems: complex migrations, deep research, first-shot implementations of well-specified systems
  • ✅ Multi-agent orchestration with long-running sub-agents that need sustained coherence

Stay on a cheaper model when:

  • ❌ Interactive coding and everyday agent work: Opus 4.8 handles this at half the price
  • ❌ High-volume production workloads: Sonnet 4.6 at $3/$15 is the workhorse tier
  • ❌ Classification, extraction, routing, simple tool calls: Haiku 4.5 at $1/$5
  • ❌ Your data cannot leave AWS: Fable 5 requires provider data sharing, so this is a hard no regardless of budget

A practical pattern: keep your default model on Opus 4.8 or Sonnet 4.6 and reach for Fable 5 per task, the same way you would reach for a bigger instance type only when the job needs it.

How Do I Roll Back?

Set the mode back on both endpoints:

curl -X PUT https://bedrock.us-east-1.amazonaws.com/data-retention \
  -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "none" }'
Enter fullscreen mode Exit fullscreen mode

Use "none" for guaranteed zero data retention or "inherit" to defer to model defaults. Fable 5 becomes unavailable again, which is the correct trade-off if your data must not leave AWS.

Key Takeaways

  1. The 400 error is a server-side account policy, not a client configuration issue. No client setting fixes it, including Claude Code settings when running on Bedrock.
  2. Fable 5 requires provider_data_share. Check any model's requirements via GET /v1/models/{model} and read allowed_modes.
  3. Set the retention mode on both planes: the control plane and the model inference plane. One alone is not enough.
  4. Know the trade-off before opting in: prompts and completions shared with the provider, retained up to 30 days, account-wide.
  5. Check the pricing first. At $10/$50 per million tokens, Fable 5 is for your hardest long-horizon work, not your default model.

References


Gracias!

🇻🇪🇨🇱 Dev.to Linkedin GitHub Twitter Instagram Youtube

Top comments (0)