Writing retry and quota messages
Every attempt quota needs an extension and a real exit — the editor makes both the default, not an option an author has to remember.
This is the one editor in the flow builder built around a single WCAG rule: every attempt quota and step deadline has to offer an extension, because a fixed deadline with no way out is a timing failure — and it's exactly the bug the pattern this node type was generalized from actually had (three attempts and the conversation closed; ten minutes and the form was silently discarded).
Three ways the broken shape is hard to reach here
- The extension has no delete control. It isn't an optional section you can collapse away — it's rendered as a permanent part of the quota, with the success criterion named right beside it, and the underlying field is required in code rather than merely encouraged in the UI.
- The defaults already comply. An author who never opens this panel still ships two grants of three attempts and a two-minute warning, because sensible defaults are what a blank quota starts as.
- A degenerate value blocks publish. Setting zero attempts is the same failure written where the type system can't catch it — so it's caught as a blocking diagnostic instead, shown on the field itself, on the node, and again on the publish button.
Treat the built-in defaults as a floor, not a starting point to shrink for a "simple" step. They already reflect an accessibility review's own judgment — going below them is how the original bug comes back.
Choosing an exit
Every quota needs a real exit, and there's deliberately no bare "end" among the choices:
- Handoff — to a person.
- Go to node — somewhere else in the same flow.
- End with a stated alternative — closes the conversation, but only paired with telling the resident exactly where to go instead.
A dead end with no next step isn't one of the options — closing a conversation without saying where to go is not something this editor lets you author.
When you pick "end with a stated alternative," name something specific — a phone number, a named form, a department. "Please try again later" is a dead end wearing different words.