Understanding user-facing failures is crucial for engineering teams. During the outage, users experienced cascading problems:
Platform Unavailability
The website and app became completely unresponsive. Users who managed to load the site faced loading spinners that spun indefinitely, effectively locking them out.
Queue System Chaos
BookMyShow introduced the concept of the virtual queue, which is the right decision from the theoretical standpoint. But the execution is totally incorrect. They were asked the time when they will be able to enter, but when the clock struck, their position in the queue gets randomly assigned. For example, one person joined the queue at 1:32 PM, but their position is 590,000, whereas the position of another person who joined five minutes later is way ahead.
Reddit reports revealed that the difference in ranking results was quite dramatic: “One of us joined the line at 1:31 PM and received ranking position 700,000, whereas another of us, who joined the line five minutes later, at 1:35 PM, received ranking position 70,000, a full order of magnitude difference. It’s not a line, it’s a lottery.”
The Waiting Room Failure
Here's the transformation of the missed opportunity. The users were already present in the waiting room before the sale could begin. The system had the chance to allocate places in the queue before the sale began - come first, come first served, based on the time the users entered the room. The system at BookMyShow, however, waited until the sale began, then randomly mixed everyone together. People who came early had the same chance as people who came in at the very end.
Seat Selection Failures
But for the users who managed to get past this ordeal, there was yet another nightmare awaiting them. When trying to choose their seats, the website would either freeze or show disabled selections, while the seats would still be empty. The payment platforms would fail while the booking is mid-process, and the user would have no choice but to try again, only to find out that the seat was already reserved. One of the users, queuing position 7,500, reported finding all the selections disabled while there are still available tickets.
Database Errors
Users received contradictory availability information. Some saw negative inventory counts - a classic sign of transaction conflicts indicating the database couldn't handle concurrent bookings.