If you use a listener, useEffect in react, to load data, it will start the request, track it is loading with a boolean, and then store the payload. That passes unit tests and QA.
If the listener doesn't check the error before starting the api request again, you have this infinite loop happen where the loading flag goes off and the payload is still null, so it just starts it again.
It's sloppy code, but its an unintentional side effect.
It’s actually exactly the type of problem declarative UI libraries like react were supposed to prevent, yet here we are 8 years later.