Skip to main content

Google Model Armor v3 is Stable. Your guardrail may have changed without a config diff

6 min read

Google promoted Model Armor v3 to Stable on August 31. Templates using the alias changed automatically, while v1 and v2 now face a November 29 retirement.

Google Model Armor v3 is Stable. Your guardrail may have changed without a config diff

A production guardrail changed on August 31 even if nobody merged a configuration file. Google moved Model Armor’s Stable alias to v3, so the reassuring word “Stable” now points at different detection logic.

Google Model Armor v3 is now the Stable filter version. Any template configured with the Stable alias upgrades automatically. Versions v1 and v2 moved to Legacy status and are scheduled to retire on November 29, 2026.

This is not a reason to avoid managed guardrails. It is a reason to treat a filter promotion like a dependency update: run a fixed test corpus, compare decisions, inspect latency, and document what changed before users discover it for you.

Stable is a moving channel, not a pinned build

Google’s lifecycle documentation is explicit: an alias represents a stage, and the version underneath it can advance. When a new release becomes Stable, templates using that alias begin using the new release automatically. Teams that do not want that behavior must point to a numbered version.

What each Model Armor version choice means after August 31, 2026.
Template settingBehavior nowOperational consequence
StableUses v3 automaticallyNo migration edit, but decisions may change without a config diff
v3Pinned to the current Stable versionControlled rollout now; another migration is required later
v1 or v2Legacy until November 29Short testing window before retirement
Retired version after November 29Sanitization uses the current Stable versionA stale pin does not preserve old behavior indefinitely
Source: Google Cloud Model Armor release notes and filter-version documentation.

That last row matters. Pinning v1 or v2 buys migration time, not permanence. Google says templates pointing at a retired version are sanitized with the current Stable version. A team that waits until retirement can receive the change at the least convenient moment.

Google reports better detection and fewer false positives

Google says v3 uses an updated prompt-injection and jailbreak detector trained to reduce false positives and improve detection and mitigation across attack vectors. Those are company-reported performance claims. The release notes do not publish a customer-specific confusion matrix for your languages, documents, tool calls, or attack mix.

“Fewer false positives” can mean a better user experience. It can also move the boundary around an uncommon attack pattern. The correct test is not whether v3 blocks a famous jailbreak. It is whether v3 makes better decisions on the traffic your application actually accepts.

Build a two-sided regression corpus

A guardrail test set needs legitimate hard cases and malicious cases. Otherwise a team can improve its block rate by making the product unusable, or improve completion rate by letting attacks through.

  • Benign complexity: long policies, quoted malware descriptions, red-team reports, code, multilingual instructions, and support tickets that mention prohibited content without requesting it.
  • Direct attacks: system-prompt override attempts, data-exfiltration requests, encoded instructions, role-play jailbreaks, and tool-abuse prompts.
  • Indirect attacks: malicious instructions inside retrieved webpages, files, comments, metadata, and tool output.
  • Boundary cases: the same request rewritten across languages, formats, whitespace, images, and long-context positions.
  • Expected result: allow, block, redact, warn, or escalate, plus the reason a reviewer would accept.

Run the same corpus against the old pinned version and v3. Record changed decisions, not just aggregate pass rates. A 1% change can be harmless if it fixes false positives, or serious if it affects the one tool call that moves money.

Our review of Mistral’s policy-adaptive safety classifier explains why the policy, detector, and action must be tested as a chain. A good classifier still needs an enforcement path that fails safely.

The new input limit has a separate 256-URL ceiling

Model Armor now supports prompts and responses up to 65,536 tokens, or 262,144 characters, for several filters. Google also says it scans only the first 256 URLs found in the content.

That limit is easy to miss in agent workflows. A browser agent, research system, or security report can assemble hundreds of links. Teams should not assume that every URL in a long payload receives the same malicious-URL check. Count and normalize links before sanitization, reject pathological inputs, or split work into bounded batches with explicit provenance.

Choose alias or pin by your rollback ability

A practical Model Armor rollout choice.
EnvironmentSensible defaultRequired control
DevelopmentLatest or v3Continuous corpus testing and visible changed decisions
StagingMatch the intended production versionReplay real, redacted traffic before promotion
Low-consequence productionStableAutomated monitoring and a rapid route to a pinned version
High-consequence productionExplicit versionChange window, signed test evidence, rollback, and retirement calendar
The right choice depends on consequence and recovery time, not a universal preference for aliases or pins.

Managed changes can be valuable because defenses adapt to new attacks. The failure is allowing a managed change to become an invisible change. This is especially important for agent gateways, where Model Armor can sit between a model and tools. Our managed-agent hooks review shows why teams must decide what happens when a safety component is unavailable, uncertain, or bypassed.

A migration plan before November 29

  1. Inventory every Model Armor template and record whether it uses an alias or version number.
  2. Export a representative corpus with expected decisions and consequence labels.
  3. Compare v1 or v2 with v3, then review every changed high-consequence case.
  4. Measure p50, p95, and p99 latency as well as timeouts and skipped detections.
  5. Test long inputs, multilingual content, indirect prompt injection, and more than 256 URLs.
  6. Choose Stable or v3 explicitly and record the reason, owner, rollback route, and next review date.
  7. Finish before November 29; do not treat retirement day as a deployment window.

My verdict: keep Stable, remove invisible Stable

For many applications, following the Stable channel is a reasonable trade: Google maintains the detector while the team avoids every manual version migration. I would keep it only if a version promotion automatically triggers the same evidence review as a code dependency update.

For actions involving credentials, money, external messages, public code, or regulated data, pin the tested version until a controlled v3 comparison passes. A guardrail should reduce uncertainty. An unobserved alias change creates it.

Read the primary sources

Checked August 31, 2026. Version dates, alias behavior, retirement behavior, limits, and feature claims come from Google Cloud documentation. Recommendations and test matrices are Musthave.ai’s analysis.

Leave a comment

Your email address will not be published. Required fields are marked *