Skip to content

The empty-state answer

Responding when there's genuinely nothing to say.

7 min

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."
The pattern

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.

Three takes on the same empty question
Switch between confident, hedge, and honest
User

Which of my customers renewed between Dec 12 and Dec 14, 2025?

Model · honest empty

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.

Try one of these

The honest empty state has a shape: a headline, a reason, two pivots. Absence, well-designed, earns trust.

The why

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.

Three moves

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.

The trap

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.

Failure modes

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.
Seen in the wild

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