Worked on my machineQA & testingยท7 min read

The Bug That Only Happens on Slow Networks: Loading-State Horror Stories

Painfully familiar.

Composite stories of five bugs every QA team has met, all invisible on a fast laptop and all reproducible in ten seconds once you can slow the API on demand.

The pattern

  • These bugs hide because your local API answers in 20 ms.
  • A delay rule reproduces them on demand. Then you can fix them and keep the rule as a regression check.

Why these only show up "in the wild"

On a dev machine the API answers instantly, so the UI never spends time in its in-between states. Real users live in those states. These are composites of failures common enough that most teams will recognise them; none is a report of a specific incident.

20 ms
typical local API response
3 s+
where users start to tap again
1 rule
to reproduce all of them

Five horror stories

Works on my machine
(20 ms API)
The slow-network user would like a word.

1. The double submit

A form button stays enabled while the request is slow. The user taps twice. Two orders. Reproduce: add a 5 s delay to the POST and tap twice.

2. The eternal spinner

The request fails but the error branch never clears the loader. Reproduce: force a 500 with a delay and watch whether the spinner ever leaves.

3. The out-of-order search

Typing "ab" then "abc": the "ab" response arrives last and overwrites the "abc" results. Reproduce: delay only the first request URL longer than the second.

4. The timeout nobody handles

The request never returns and the UI waits forever. Reproduce: a very long delay, then check for a timeout message and a retry.

5. The empty state that was never designed

A new account has no data and the page shows a blank white area. Reproduce: return an empty array.

Turn each story into a regression check

Save each delay or failure as a named rule. Before a release, enable the group, click through the flows, and disable it again. It takes minutes and it checks the states users actually meet.

Assume it breaks. Then prove it. The rule is the proof.

Frequently asked questions

How do I delay only one endpoint?

Create a rule that matches that URL pattern and set a delay in milliseconds. Other requests are untouched.

๐Ÿž
Written by

Vivek Shankhdhar QA Lead

Vivek leads QA and owns how ProxyCeptor gets tested before it reaches you. He writes checklists, failure catalogues and cautionary tales about states nobody thought to test: the slow response, the empty list, the retry that retries forever. Expect deadpan humour, numbered lists and one item you did not see coming.

โ€œAssume it breaks. Then prove it.โ€

More from Vivek โ†’

Read next

Intercept your first request in under a minute

Create a free ProxyCeptor account to mock, delay, block and rewrite API traffic, then share the same rules with your team.

๐Ÿš€ Mock, delay and break API calls in ChromeTry ProxyCeptor free