The empty-state answer
Responding when there's genuinely nothing to say.
The model doesn't like saying nothing. Faced with a question whose answer is an empty set, most models produce a plausible-looking answer shaped like the question, filled with invented details. This is the single clearest tell of a product that hasn't earned trust: it would rather hallucinate than return zero rows.
An honest empty state is the opposite. It names the absence, explains it, and offers two specific pivots. The answer is cheap, fast, and unambiguous. The user knows what was checked and what wasn't.
"The product that can say 'nothing matched' is the product the user trusts when it finds something."
Shape the empty state like the question.
If the question was 'which customers?', the empty answer says 'no customers matched'. Not 'I couldn't find information'. The shape of the absence matches the shape of the ask. Then a second line names what was actually checked: the table, the window, the scope. Then two pivots: broaden, or try a different scope.
Which of my customers renewed between Dec 12 and Dec 14, 2025?
No renewals matched that window.
I searched the renewals table between Dec 12 and Dec 14, 2025 inclusive. Zero rows. The table is current through Dec 31, so this isn't a coverage issue.
The honest empty state has a shape: a headline, a reason, two pivots. Absence, well-designed, earns trust.
Absence is information, if you let it be.
Users asking AI products for real work already know the world is messy. They expect some queries to return empty. What they don't expect is for the product to invent something. An honest empty state turns a non-result into signal. 'No matches' is a useful answer. 'Here's a plausible guess' is a betrayal.
How to shape an honest empty.
- Mirror the question. Question about customers gets 'no customers' back, not 'no information'.
- Name the scope. What was checked, not just what was found. 'Searched Dec 12–14 in the renewals table' proves the empty is real.
- Offer two pivots. Broaden, or try a different source. Specific, tappable, the user never lands on a dead end.
Empty states that apologize.
The hedge-heavy empty state is almost as bad as the confident hallucination. 'Renewals data can be tricky to pin down precisely. Typically, December sees…' This is the model burning words to avoid admitting it found nothing. The user has learned nothing and now has to re-ask.
What this pattern gets wrong when it gets wrong.
- Confidence theater
- Language or typography that performs certainty beyond what the model actually has.
- Ghost citation
- A source is shown but doesn't actually back the claim, or links to a page that doesn't contain the quoted text.
- Empty disclaimer
- A legal-feeling warning that carries no specific information about this particular response.
Three shipping variants worth copying.
- A shaped empty state that mirrors the question's format
- One sentence explaining why the result is empty
- Two pivot moves: broaden, or try a different source