Claude Code enforceAvailableModels Closes the Default-Model Governance Gap in Managed Settings
Claude Code v2.1.175 adds enforceAvailableModels, a managed setting that constrains the Default model to your availableModels allowlist and prevents project or user settings from widening it — closing a silent governance gap for enterprise teams.

Claude Code v2.1.175, released this week, adds a single new managed setting — enforceAvailableModels — that resolves a real governance gap teams have been working around since the availableModels allowlist was introduced.
What happened
Until this release, the availableModels managed setting in Claude Code let operators define a list of approved model IDs. But the setting had two escape routes that most teams did not realize existed:
- The Default model alias was not bound by the allowlist. If an organization's Default model resolved to, say, Opus 4.8, and that model was not in the
availableModelslist, the session would still use Opus 4.8 — the allowlist only blocked explicit/modelpicker selections, not the Default resolution path. - Project and user settings could widen the allowlist. A developer could add a model to their
.claude/settings.jsonor~/.claude/settings.jsonthat the managed allowlist had intentionally excluded, and Claude Code would accept it.
With enforceAvailableModels: true in the managed settings layer, both escape routes are closed. The Default model now falls back to the first allowed model in the list if its resolved target is disallowed. And project or user settings can no longer extend the managed availableModels list — the managed layer is now a ceiling, not a floor.
Why it matters for AI engineering teams
Enterprise teams enforce availableModels for two main reasons: cost control (preventing access to higher-cost model tiers) and compliance (ensuring all LLM traffic flows through approved, audited models, often required by data-processing agreements or internal AI governance policies).
The pre-v2.1.175 gap meant that a managed allowlist of ["claude-sonnet-4-6", "claude-haiku-4-5"] would still let sessions land on Opus or Fable 5 via the Default path — typically the most expensive tier on Enterprise pay-as-you-go accounts. Audits would surface the spend but not always flag the root cause.
More critically: compliance teams relying on availableModels to restrict which models process sensitive data now have a stronger guarantee. The Default fallback path was always the highest-risk exemption because it was invisible to most developers — they never explicitly selected a model, so they never noticed they were outside the allowlist.
The router/operator angle
For teams routing Claude Code sessions through an AI gateway — whether via ANTHROPIC_BASE_URL pointing to a proxy or using a native Bedrock/Vertex/Foundry deployment — enforceAvailableModels has an important interaction with how the gateway receives model IDs.
When the setting is enabled and Default resolves to the first allowed model, the model ID sent upstream is deterministic: it will always be the first entry in availableModels. This means:
- Routing tables become predictable. You no longer need to account for Default resolving to different model IDs depending on account type (Opus on Max/Team Premium Enterprise, Sonnet on Pro/Team). The gateway will always see the managed list's first entry.
- Spend attribution is cleaner. Any token usage attributed to a disallowed model after
enforceAvailableModelsis enabled is a configuration error, not a policy bypass — easier to audit. - The allowlist interacts with
fallbackModel. If your managed settings define bothavailableModelsandfallbackModel, confirm that thefallbackModelis also in the allowlist. An out-of-list fallback model would now be blocked byenforceAvailableModels, which could cause sessions to fail rather than fall back. Test this configuration in a staging environment before deploying.
One nuance operators should know: enforceAvailableModels is a managed-layer-only setting. It cannot be set in project or user scope — by design. If it could be disabled at project level, it would undermine its own purpose.
What to check before enabling this setting
A few pre-flight steps for teams ready to enable enforceAvailableModels:
- Audit your current Default model resolution. Run
claude /statusor checkclaude --help modelin a representative session to see what model Default currently resolves to. If it is not in youravailableModelslist, sessions will silently switch to the first allowed model after you enable the setting. - Order your allowlist by intent. The first entry in
availableModelsbecomes the effective Default whenenforceAvailableModelsis true and Default would otherwise be disallowed. Treat list order as a policy decision. - Check your fallback chain. Any
fallbackModelconfigured by users or projects must also be in the managed allowlist, or it will be blocked. - Coordinate with your gateway routing tables. If your AI gateway routes based on model ID, ensure the expected model ID (your first allowed model) is mapped to the correct upstream provider/deployment.
What TheRouter users should watch or try
Teams routing Claude Code through TheRouter with managed settings for model governance should add enforceAvailableModels: true to their managed settings configuration alongside availableModels. This closes the Default-model bypass and makes model ID visible and deterministic at the gateway layer — a meaningful upgrade for teams using TheRouter's routing rules to separate Sonnet-tier from Opus-tier traffic by cost or provider.
The setting is available starting Claude Code v2.1.175. Run claude update to upgrade.

Claude Enterprise Model Entitlements: Per-Role Model Access and Effort Level Caps Land in Beta
Anthropic's new Enterprise model entitlements let admins lock specific Claude models to roles and cap the effort level—directly capping token spend—per role. Here is what AI engineering teams need to configure.

Claude Code 2.1.259: Org-Level MCP Server Push and the Concurrent Session State Fix Operators Missed
Claude Code 2.1.259 ships managedMcpServers for org-wide HTTP/SSE MCP rollout, breaks the allowedMcpServers filter for managed entries, and fixes a concurrent-session bug that was silently corrupting workspace trust and MCP state in multi-agent CI runs.

Claude Fable 5.1 Arrives: Containment Escape Blocks Cloud Credential Fetches by Default
Claude Code ships Fable 5.1 with 1M context and a hard auto-mode gate on cloud metadata fetches — here is what every operator running production pipelines must audit now.