When a Flow gets stuck
Self-heal repairs a failing step from the live page, Repairs lets you keep or undo it, and a stuck run can ask you what to do.
On this page
Sites change. A button moves, a label is reworded, and a step that worked last week finds nothing. LoginDeck has three ways to deal with that: it repairs the step itself, it asks you, or it rewrites the Flow from what the failed run saw.
Part of Pro, Team and Custom.
π©Ή Self-heal, during the run#
self-heal is ticked by default in the editor toolbar. When a step fails, the app reads the page as it is right now, asks your AI model for corrected settings for that step only, and tries it again. If the retry works, the run carries on and the fix is saved into the Flow at the end.
The run log narrates it:
- {step} failed: {err} β reading the page and asking the model to repair this stepβ¦
- repaired {step}: {reason} β trying the step again
- {step} works with the repair β carrying on; the fix is saved to the flow when the run ends
- saved {n} repair(s) to the flow β review it under Repairs in the editor
What it will not do:
- more than one repair attempt per step per run, or more than five repaired steps in a run β past that, the Flow needs looking at rather than patching;
- change a step's type or the wiring;
- make a step optional;
- overwrite a step you edited by hand in the meantime β a hand edit wins;
- repair the control and data steps (loops, If / Else, Get time, Random, List source, Clipboard, the Profile steps), or anything at all once the browser itself has died.
Each repair attempt costs one AI action. With no model set up, the log says self-heal is on but no AI model is set up β see AI settings once and the run fails normally. Out of actions, it says self-heal is off for the rest of this run and gives the reason.
π Review what it changed: Repairs#
A repaired step carries a π©Ή mark on the canvas, and the toolbar grows a π©Ή Repairs button with a badge counting the ones you have not looked at. The library row shows a π©Ή {n} repaired pill too.
- Open the Flow and click π©Ή Repairs (or click the π©Ή on the step).
- Each card names the step, the profile and when, the error, the model's reason, and a before-and-after of the settings it changed.
- Click Keep to mark it as seen, or Put back to restore the old settings.
Put back answers with Put back β the step has its old parameters again. If you had edited that step yourself since, it says Repair removed; the step had been edited since, so it was left as it is β your version stands.
Up to 50 repair records are kept per Flow.
π€ Ask when stuck#
ask when stuck is also on by default, and applies to single runs you start in the editor β never to Run on many, schedules or API runs.
When a run fails past what self-heal can fix, the browser stays open on that page and a card appears above the run log:
π€ Stuck. {where} Β· Needed {what it needed} Β· Why {why}
You get one to three buttons (the suggested one is highlighted and starts Yes β *), plus a box reading *or tell it what to do insteadβ¦ and Send. The usual choices are: skip the step, stop, or a proposed change.
Type an answer and the model rewrites the Flow from it, saves it, and the run carries on from the stuck step in the same browser β toast Flow rewritten from your answer β the run carries on. The phase pill goes stuck β revising β running.
With no AI model set up, the card offers Skip this step and carry on and Stop here instead, and says why: no AI model is set up, so it cannot suggest a fix.
Limits: three stuck rounds per run, and the card waits ten minutes. After that the run gives up (no answer β giving up on this run) and the browser closes. Stop ends it at once.
What it will never offer
A stuck card will not propose a way around a CAPTCHA, an SMS code, a phone number or an ID check. If that is where a Flow stopped, do that part yourself.
β¨ Fix with AI#
After a run that failed β or one where optional steps found nothing β the run-log bar shows β¨ Fix with AI. It hands the model the run's log and the page as it was at the moment it went wrong, and rewrites the whole Flow from that. The same button appears as β¨ Fix on failed rows in Run history.
It overwrites the Flow you ran, so read the result before running it again. If no page view was captured, the toast says so β no page view was captured, so this is a guess.
To describe a change yourself instead, use β¨ Refine: Build a Flow with AI.
π§ Fixing it yourself#
Often faster than any of the above:
- Open Run history, click the run, and read the log. Every error names the step: Click β could not find "Sign in" on this page.
- The log also records the page it was on at the time β the URL, the title and a screenshot in the run's folder.
- Open that step and loosen the element. By features with just the visible text usually survives a redesign; an exact CSS selector usually does not.
- Add a Wait for element before the step if the page is slow, rather than a longer Wait.
- Tick Carry on if it is not there on steps that genuinely might be absent β a cookie banner, a "not now" prompt. Bear in mind a run full of skipped optional steps finishes with it may not have done its job.
βΉοΈ Good to know#
- Both self-heal and ask when stuck are per run: untick them in the toolbar before you press Run.
- Scheduled runs always self-heal, and that is not configurable in the schedule dialog β so a nightly job can spend AI actions while you sleep. See Run Flows on a schedule.
- Runs started from the local API or MCP never stop to ask a question; they return the failure, with the log and the step, for your script to handle.
- If a whole class of steps fails on every profile, look at the profile rather than the Flow: A profile won't start.