ever heard of an Denial of Service because the service is congested? With my examples I wanted to point to the fact that you wrongly say "an error message is a bug".Both of those are clearly bugs. If you divide by 0, you clearly didn't check your input data before doing the calculation. If you allow letters from ascii data in a search field for phone numbers (arguably ascii strings anyway), you are again not validating your input data and handling it in a nice way for the user. Programmers do these kind of checks all the time.
The time a service should respond within is a contract and it is a bug if it doesn't respond in time. A retry is simply a workaround that smooths out some of those bugs. Whether it is an important enough bug to fix, is another story. Every user-facing system will have many more bugs "ignored" than those that are fixed. Retrying as a functionality is flawed and in my experience because you don't feel there is enough time to fix the root cause. It's basically saving developer time by letting the users spend more time waiting.
Which it isn't. An error message can appear when there is something not working but the condition is an expected condition under certain circumstances. A calculator will give you a Div by 0 error message. This is NOT a bug. It knows how to handle a Div0 and tells you that it isn't allowed. If the calculator had an actual bug, it would accept your input and crash.
As some support engineers would say: "Dear customer, it is a bug when it got a bug number from us. Unless it hasn't a bug number it could be a bug but rather let a developer look at it."