This weekend, there were two contests in a row which became unrated due to technical issues; one because of long queue and one because of server returning 500/502/504 all the time. While I do not understand the technical details, I am pretty sure that these two failures are related to each other.
Similar incidents have happened before; for example, just before Codeforces Round #639 (Div. 2) took place, a technical issue was suspected, and the round was rescheduled because of this. However, no one made sure that the issue was actually fixed, and when the contest did actually take place, it was ruined by long queue. In both of these cases, there were known technical issues before the contest started, but the contest took place anyway.
I propose that whenever there is a good reason to believe that a round is likely to be affected by a technical problem (such as after a contest becomes unrated due to queue/server problems, which is reason to believe that the next contest will likely face the same problem), a testing round must occur before the actual round takes place.
Maybe we can also have regularly scheduled testing rounds (such as once every week). These rounds can be hidden from the contest list or deleted entirely after they end, to reduce clutter.