Task tool model:'opus' resolves to stale claude-opus-4-1 on Bedrock EU region

Resolved 💬 3 comments Opened Feb 28, 2026 by mmphego Closed Mar 3, 2026

Bug Description

When spawning subagents via the Task tool with model: "opus", the model alias resolves to eu.anthropic.claude-opus-4-1-20250805-v1:0 instead of the current claude-opus-4-6 model. This causes a 400 API error on AWS Bedrock in the EU region, as that model identifier is invalid/unavailable.

Environment

  • Claude Code version: Latest (as of 2026-02-28)
  • Backend: AWS Bedrock (CLAUDE_CODE_USE_BEDROCK=1)
  • Region: eu-west-1
  • Parent session model: eu.anthropic.claude-opus-4-6-v1 (set via /model and settings.json)
  • OS: macOS (Darwin 25.3.0)

Steps to Reproduce

  1. Configure Claude Code to use Bedrock in EU region
  2. Set model to eu.anthropic.claude-opus-4-6-v1 via /model
  3. Spawn a subagent using the Task tool with model: "opus":

``
Task({
subagent_type: "general-purpose",
model: "opus",
prompt: "Do something",
run_in_background: true
})
``

  1. The subagent fails immediately with:

``
API Error (eu.anthropic.claude-opus-4-1-20250805-v1:0): 400 The provided model identifier is invalid.
Run /model to pick a different model.
``

Expected Behavior

model: "opus" should resolve to the same model as the parent session (eu.anthropic.claude-opus-4-6-v1), or at minimum to the latest available Opus model in the configured region.

Actual Behavior

  • model: "opus" resolves to the stale eu.anthropic.claude-opus-4-1-20250805-v1:0 identifier
  • The subagent cannot make any API calls and enters an infinite idle loop
  • The subagent becomes unresponsive to shutdown requests (cannot be terminated gracefully)
  • TeamDelete is blocked because the zombie agents remain "active"

Impact

  • Subagents using model: "opus" are completely non-functional on Bedrock EU
  • Zombie agents that can't be shut down block team cleanup
  • No workaround exists other than avoiding model: "opus" entirely (using model: "sonnet" or omitting the parameter works fine)

Workaround

  • Don't pass model: "opus" to the Task tool
  • Either omit the model parameter (inherits parent session model) or use model: "sonnet"

Additional Notes

  • model: "sonnet" resolves correctly and works fine
  • model: "haiku" was not tested but may have the same issue
  • The settings.json model field is correctly set to eu.anthropic.claude-opus-4-6-v1 — the issue is in the internal alias mapping for the Task tool's model enum, not in user configuration
  • The model alias table appears to be hardcoded and not configurable via settings or environment variables

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗