Field Report · Behavioral Testing · Customer-Facing AI

When a typo beats the guardrail.

A production shopping assistant blocked one correctly spelled question and answered every misspelled version of it. The lesson is not about one retailer. It is about where a safety control sits, and why only behavioral testing finds the gap.

A customer-facing AI shopping assistant on a major e-commerce platform will not tell you whether a product is made in the USA. Ask it plainly, spelled correctly, and you get a fixed deflection: it does not have access to that information, check the product page. Ask the same thing with a typo, or drop the country from the question, or describe the country instead of naming it, and the assistant answers immediately, cheerfully, and in full. Same intent. Same product. Same session. One phrasing is stonewalled and the rest sail through.

The first tell is that the refusal is word for word identical every time. A language model generating its own responses does not repeat itself byte for byte across different questions. A fixed string is the signature of a templated intercept firing before the model ever runs. Something is matching your input and returning a canned response, and the model behind it never gets a turn.

The second tell settles what that something is. Asked for goods made in "the country north of Mexico but south of Canada," the assistant solved the riddle out loud, named the USA, and produced a list. Full comprehension. It understood a paraphrase a filter could never anticipate, yet it choked on the plain question. That places the block below the model's own level of language understanding.

The guardrail is dumber than the model it guards.

Put those together and the mechanism is not mysterious. A lexical filter is scanning raw user input for a specific claim string and returning a fixed refusal when it matches. It has no typo tolerance, no fuzzy matching, and no sense of meaning. So three different perturbations all defeat it: misspell one character, omit the country token, or paraphrase the country. Any input the model can parse but the filter cannot recognize passes straight through. This is input-filter evasion, the same family of failure as leetspeak and character substitution slipping past content moderation. It is old, it is understood, and it is sitting in a production system used by millions of people.

There is a plausible reason the control exists, and it makes the failure sharper rather than softer. The one blocked phrase happens to be the single product-origin claim that is federally regulated in the United States. Affirmatively certifying that a specific product is American made carries real compliance exposure. Stating that a product is made anywhere else does not. So the most charitable reading is that someone built a filter to keep the assistant from vouching for a regulated claim it cannot substantiate. If that is the intent, a one-character typo defeats the control at its own job, because the misspelled version elicits exactly the American-made endorsement the filter presumably exists to prevent. A bypassable compliance control is arguably worse than none. It manufactures the feeling of protection while the regulated representation still reaches the customer.

Here is why this matters to anyone deploying a customer-facing assistant. An off-the-shelf scanner will test this system for jailbreaks, prompt injection, and data leakage, and it will find none of those here, because none of those is the problem. What a scanner will not flag is that the assistant refuses its own suggested prompts, or that when you ask it why it refused, it invents a different reason every time. Those are behavioral failures. You find them by testing intent across phrasings, watching how the system actually behaves, and treating the model's account of itself as unreliable rather than as evidence. A checklist does not catch them. A person who knows what to look for does.

The general rule underneath all of it is simple. A guardrail written as a string match will always be beaten by someone who rephrases. Safety controls belong at the semantic layer, where they respond to what a user means rather than to the exact letters they typed. And the only way to know whether a control actually lives at that layer is to test the behavior, not to read the configuration.

The tool is not the point. The question is whether the control understands what it is guarding. Most do not. Behavioral testing is how you find out, before your customers do.

We test assistants the way a curious customer would, across phrasings, until the behavior tells the truth. A Recon covers the tools you have already bought.

Start with a Recon