Error handling and recovery
Loading state that never resolves
When a request fails, the loading flag is never cleared and the screen spins forever.
Termsfault injection (making a dependency fail on purpose in staging to see what the user and the logs show) · API (the interface other software calls; tested directly, without the UI in between) · webhook (a message a provider such as Stripe sends to your server when something happens, like a payment)
mediumseverity if found in a releasesources verified 2026-09-21
Why AI-assisted code produces it
Generated async code sets loading true before the call and false after success; the failure branch is the one most often left out, consistent with the error-handling gap CodeRabbit measured.
In the same 470-pull-request sample, cross-site scripting issues were up to 2.74 times more frequent in AI-co-authored pull requests; error-handling gaps were nearly 2 times more common and logic and correctness issues 75% more common.
Source: CodeRabbit, 2025-12-17 · verified 2026-09-21
How we detect it
Block the network mid-request on each critical screen.
Most associated with
Tools: Cursor, GitHub Copilot, Claude Code, Windsurf, Lovable, Bolt
Stacks: Next.js, React Native, Expo
Checklist items that catch it
No infinite loading states
automated Block the network mid-request on each critical screen.
Every loading state resolves to an error or retry state within 10 seconds.
Dots: Starter, Growth, Scale. The item runs on every release for the plans marked.
More in error handling and recovery
- high
- medium
- medium
- medium
- medium
Check your codebase for this pattern
The coverage audit lists which catalogue patterns apply to your critical flows. 5 business days, $1,200, credited to a first month.