When the Autocomplete has no options to show, its list shows one status row instead: loading, empty, an error with a retry button, or a prompt to type more. Each comes from a prop you pass, and each row is a slot.

Loading

Empty

Error

Min. characters

Open each picker to see its row. Retry in the error picker clears the error and shows the options.

Which row shows

One row shows at a time, in this order:

  1. Error, while error is set. It replaces the list entirely, so a failed request never reads as “No results”. With onRetry it has a retry button named by the retry label.
  2. Loading, while loading is true and there are no options to show. With options on screen, the list keeps them and sets aria-busy="true" instead. The trigger shows a spinner whenever loading is true.
  3. Minimum characters, while fewer than minChars characters are typed and there are no options, from the minChars label.
  4. Empty, when the search matches nothing, from the empty label.

The live region stays silent while a status row shows; it reads the result count again once options are back.

Changing the rows

  • The text: pass labels, as the demo does with empty: "No countries match".
  • The row itself: replace the Empty, Loading or Error slot. Empty receives the query and the status, so one component can word “no results” and “type more” differently.
  • In your own layout, Autocomplete.StatusRows renders the right row for you.

The creatable guide shows the row that replaces “No results” when new options can be made.