Skip to content
Course · Shipping AI interfaces

Retry, rate limits, and grace

The retry button is where products reveal their character. The honest retry knows it will fail again, the honest rate limit says when it unlocks, and both stay calm.

Beginner1 min read (computed · recorded 3)updated 2026-09-14airetryrate limitscourse

by Motif Editors

revised 2026-09-14First publication in the bank-4 AI-interface curriculum.

Part 8 of 15 in Shipping AI interfacesCitations build trustAgent steps users can follow

Key takeaways
  • A retry that replays the same input is honest only if it says so — a retry is not a regeneration.
  • Rate limits should print the unlock time, not a vague 'try later'.
  • The guard is the UI for a resource the user does not control; kindness is part of the spec.

Retry is a verb with a subject

'Retry' promises another attempt. If the button just replays the identical request, the attempt is a rerun, not a regeneration — label it. This site's answer actions print exactly that: 'a local replay, not a new generation'. The label costs nothing and prevents the discovery that retry never changes anything.

The wall should be readable

A rate limit is a wall the user did not build, so the interface has to make it legible: what the limit is, how long until it unlocks, and a retry that stays disabled until the countdown ends — with the countdown visible, not implied. 'Try again later' is a wall in the dark; 'unlocks in 12 s' is a wall with a clock on it.

Practise the lesson

Theory sticks when you ship it. These original Motif assets put this guide's lesson to work — open one and copy it into your own page.

The component this essay works with — mounted, not pictured
Retry Guard

Rate limit reached

This demo allows one request per 12 s. Retry unlocks when the countdown ends.

12 s

Counting down locally — no server involved.