A Customer Yelled at a Cashier Because His AI Made Something Up

Last night I went to Tractor Supply for grain and shavings. As I walked in, one of the staff was telling the cashier about a call he had just taken.

A customer had rung up furious. His AI had told him Tractor Supply carried a particular product. Not that it was in stock — that they carried it. They do not. The man was angry, did not believe him, and hung up on him.

The employee got yelled at for something his company never said.

I spent five minutes explaining what I do for a living, and I doubt either of them followed all of it. But they both landed on the same thing without prompting: everyone is moving from searching to asking, and they wanted whatever would fix this.

When the person behind the counter is asking for the capability, the market is real.

So I went and looked

I had assumed Tractor Supply simply did not publish machine-readable data. That was a guess, so we checked it. The answer is worse than the guess.

We requested tractorsupply.com from two completely independent networks — a home connection and a datacenter — with a normal browser user-agent, and again as a bot. Every attempt was refused instantly. Not a timeout: an immediate reset, in under a tenth of a second. We could not even fetch their robots.txt, which is the file whose entire job is to tell automated visitors what they may do.

As a control, we fetched another large retailer from the same machine at the same moment. That worked fine.

One caveat, because it matters and it is the sort of thing people should check rather than take on faith: the real GPTBot arrives from published OpenAI address ranges and may well be allowlisted at their CDN. A bot user-agent from an arbitrary datacenter looks like a spoof and would be blocked on that basis alone. So the honest claim is narrow — a generic automated client cannot reach them — not that any particular company’s crawler cannot.

But narrow is enough to explain the phone call.

The failure mode of invisibility is not silence

If you cannot read a company’s website, you might expect an assistant to say “I don’t know.” That is not what happens. Asked whether a farm store carries a particular product, and having nothing from the farm store to read, it does what it can: third-party mentions, older training data, and the entirely reasonable inference that a farm store probably carries farm things.

The answer comes out fluent and confident and wrong. Nothing in the process felt like guessing.

And the cost lands on the store. A customer drove somewhere for nothing. An employee absorbed his anger. Nobody at Tractor Supply will ever see that as a data problem, because it did not arrive looking like one — it arrived looking like a difficult customer.

This is also, worth saying, anti-scraping working exactly as designed. Large retailers block datacenter traffic to keep price bots out, and that is a rational thing to want. What nobody weighed is that the same wall now blocks the assistant standing next to the customer. The defence was built when the only automated visitors were adversaries. That stopped being true.

It is not the stores adding AI. It is the stores learning to speak AI.

That distinction is the whole thing, and almost every conversation I have gets it backwards.

Nobody at Tractor Supply needs to buy an AI. Their customers have already brought one. It is in the car park, in the aisle, on the phone during the argument. The question is not whether to adopt it. The question is whether it can read you.

And “read you” turns out to mean something quite specific and quite unglamorous:

  • Be reachable at all. If an automated request gets an instant reset, nothing else in this list matters.
  • Say what you carry. In a form built for a machine, not inferred from your page layout.
  • Say what you do not carry. This is the one everybody skips, and it is the one that would have prevented that phone call. Absence is a fact. Right now the web has almost no way to state it, so assistants fill the gap by inference — and inference about absence is guessing.

That third point is the interesting problem. We are good at publishing what exists. We have essentially no convention for authoritatively publishing what does not, and it turns out the second thing generates the angry phone calls.

What we are doing about it

We publish an open specification, the AI Discovery Standard, for stating machine-readable facts about an organisation at a known address on your own site. It is CC-BY licensed, free, and there is more than one independent implementation. If you run WordPress there is a plugin; if you do not, you can implement it by hand and never speak to us.

We also score sites against it, including our own — we recently found our own services averaging 26% on our own standard and published that number, because a scoring tool whose author will not run it on himself is not worth much.

What we cannot yet do is make anyone rank higher. No assistant today weights a site for being legible, and we are not going to pretend otherwise. What legibility changes is what an assistant can say once it arrives — facts you wrote, attributed to you, instead of an inference that reads like a fact.

The part I keep thinking about

The employee who got shouted at will remember that AI made his job harder. He is not wrong. But the AI was not being stupid — it was uninformed, and confidently so, which is a much more dangerous thing to be.

Somewhere there is a product manager at a large retailer who does not know that their bot wall and their customer experience are now the same conversation. When they find out, it will probably be from someone at a checkout.

Scan any site, including ours · Read the standard

The measurement described here is reproducible. Request tractorsupply.com from a
datacenter IP and see what you get. If you get a different result, we would
genuinely like to know — tell us at ai@rootz.global.