Recipes
Real frictions, sorted by the situation you are in. Written after being stuck, not before.
Every page in this section started as something that did not work. One hundred and six frictions were on record in the project’s field notes on 2 August 2026; the eight recipes here are the ones that recur often enough to deserve a page of their own.
None of them was written in advance. A recipe that anticipates a problem describes the problem its author imagined; a recipe written after being stuck describes the one that actually happens.
Find yours by symptom
| What you are seeing | Go to |
|---|---|
| The click reports success and nothing moved | Element that will not click |
| The form submits and the page does not change | Form that never submits |
| Navigation times out on a page that keeps loading | Page that never settles |
| You are back on the login screen between two calls | Session lost between calls |
| The element is visible but no selector reaches it | Element inside an iframe |
| The right number clicked the wrong row | Clicked the wrong element |
| A slow operation runs and you see nothing until it ends | Long operation, no feedback |
| Login works, then the target asks for a six-digit code | Second factor |
The one that costs the most to learn the hard way
A timeout on a click does not mean the action failed.
A real case, from the field log: a clone was launched by a form submission that kept the HTTP request open for the whole server-side operation. Playwright gave up after the default timeout and reported an error. The operation had already started. Re-run “properly” with a longer timeout, it produced a second identical clone — which is how anyone found out the first had succeeded.
Check the target before retrying. That sentence is worth more than the rest of this page.
Why they are published
A failure mode that stays private gets rediscovered by everyone, one at a time. These pages exist so that the second person to hit the problem spends five minutes on it rather than an evening.