data.day

Stop Punishing People for Bad Signal

Error popups are aggressive. They blame the user for the environment. Good software handles connection drops silently and respectfully.

The Red Box of Shame

I watched an inspector in a basement. She was trying to upload a photo. A red box popped up. “CONNECTION ERROR: 404. PLEASE TRY AGAIN.” She tapped “OK.” She hit “Upload” again. The red box returned. “CONNECTION ERROR.”

She looked at me. “I hate this app,” she said. “It yells at me.”

She was right. The app was rude. It treated a lack of 4G as a moral failing. It interrupted her work to tell her something she already knew: We are in a basement.

The Bottleneck: Modal Interruptions

A “Modal” is a pop-up that freezes the screen. It forces you to click “OK.” Developers use modals for fatal errors. “Disk Full.” “Database Corrupted.”

But many lazy developers use modals for network drops. This creates a bottleneck. Every time the signal flickers, the work stops. The user has to acknowledge the failure. It creates friction. It makes the user feel like they are doing something wrong.

The Pipe: Silent Resilience

We rewrote the network layer. We established a rule: Never blame the user for the weather.

When the signal drops, the app does not scream. It puts the request in a queue. It watches the network adapter.

  • No signal? It sleeps.
  • Signal returns? It wakes up. It retries.

The user sees a small icon change from “Online” to “Offline.” That is all. They continue to fill out forms. They continue to take photos. The app handles the transport in the background.

Respect the Reality

We work in the physical world. Concrete blocks radio waves. Valleys block towers. This is not an “Edge Case.” This is the job.

If your software cannot handle a drop in signal without throwing a tantrum, it is not ready for the field. Keep the interface calm. Keep the error logs internal. Let the user work. The pipe will reconnect when the pipe reconnects.

FAQs

But we need to alert the user to the failure.

Is it a failure? Or is it just Tuesday? Losing signal is normal. Do not treat a normal state like a crisis.

What if the retry fails forever?

Then you alert them. But not after one second. Wait. Retry. Back off. Notify only when human intervention is actually required.

How do we handle large file uploads?

Chunk them. Send small pieces. If the pipe breaks, you resume where you left off. Do not make them start over.