Hey everyone, I’m working on a small checkout flow right now, and I’m stuck on a product decision around automatic retries after failed requests. They can smooth over flaky networks, but they also seem to hide real failures and make the app feel random when a user taps twice or gets charged late.
How do you decide when retries improve trust versus when they just mask problems and create worse user expectations?
The late-charge example is the cutoff for me: auto-retry is great for reads or truly idempotent actions, but once money or other user-visible side effects are involved, silent retries usually hurt trust. In those cases, keep retries explicit, bounded, and clearly communicated so the product feels predictable instead of random.
That “predictable instead of random” bit is the line for me too, because a spinner that quietly retries for 20 seconds after a failed payment feels broken even if it eventually succeeds.