A loading state should admit it stalled
A looping spinner is not a status update. Tell me when the system has stopped making progress.
A spinner that goes on forever is not patience training. It is a small hostage situation.
The first few seconds are fine. I know the system is fetching something. After that, the animation keeps moving while the useful information stops. Did the request fail? Is the server slow? Should I wait, refresh, or close the tab and try again later?
The interface does not need to explain the whole incident. It can say "Still working," then, after a reasonable limit, switch to something honest: "This is taking longer than expected. Retry or leave this page open." If the system knows the request failed, say that instead. A retry button is much better than a spinner performing optimism.
There is a temptation to hide uncertainty behind motion. I understand it. A moving circle feels more polished than an error message. But the circle is not doing the work. It is only telling me that nobody has decided what to tell me yet.