We're at a place now where I literally have saved posts off to now put them into the many various housing-and-or-lottery threads. So, here we go with a very quick breakdown of things, based on the Lodestone posts:
- People enter the lottery for the plot, more or less "putting money into the placard" as their bid.
- Lottery closes.
- Lottery server rolls for each plot, and picks a winner for each plot out of the list. These are all valid, real results.
- Lottery server attempts to tell the housing servers who the winners for each plot are. Due to some factor -- potentially the massive amount of data suddenly being horked out of the lottery server all at once -- some chunks of the data don't get through. It's the equivalent of you not getting a letter, because the postman accidentally left it in the bag or it got stuck to someone else's mail or whatever. The mail exists, the content of the mail is known (by the sender, anyway), but it just never arrived.
- Placards that never received their mail go "Welp, I got no data." Because the winning number is an integer, and in many systems, integers treat "I have no value" and "My value is 0" the same way, the placards metaphorically shrug and show 0. However, there is still a winner for that plot; since the mail never arrived, only the lottery server knows who that is, not the placard.
- Here begins the current problem: some people, disappointed that they seem to have lost, withdraw their gil from the placards.
- SQEX goes "this is a problem" and freezes the lottery so that they can re-issue the results -- in essence, sending another copy of the mail that got lost.
- SQEX realizes that some people who withdrew gil from the placards were, in fact, the winners of those plots. (Or even the only entrant.) However, the system is written with the assumption that "The winner has gil in the placard. When the winner claims the plot, their specific gil amount is eaten and they get the plot." The system thus has no way to award the plot without the gil in the placard... nor does it have any way to take the gil from someone without it being in the placard in the first place. (And they -- quite rightly -- don't want to just invalidate the results on those plots and invalidate someone's win simply because that person took the gil out due to a problem that SQEX introduced.)
- SQEX now has to figure out how to get the winner's gil back into the placard without also turning the lottery on. Of course, you can write code to solve this! But... that's writing new code. And moreover, it's writing new code that one imagines that SQEX wants to test really super thoroughly this time, to ensure there's no weird edge cases that, like, slurp all your gil down into a vortex or whatever.
- [ "You Are Here" label on this timeline. ]
- At some point, SQEX solves the above problem. They re-issue all the results and the people who won (but the placard didn't tell them) and still want the house get to pay the gil -- even the people who refunded their bid, not knowing they'd won -- and everything is good.
- Presumably the next lottery goes more smoothly, because that code has probably now been gone over line by line by multiple people at this point.
Was the lottery kind of a disaster as a result of this? Yes. Is SQEX doing the right thing by making certain that they have a way to still award plots to the winners who already took out the gil, because they didn't know they were winners? Also yes, in my opinion. Is it a smart thing to take extra time to make sure whatever fix they come up with works properly in every scenario before pushing it like? Dear god, yes.
Can you imagine the absolute rioting that would ensue if they made a fix for this and it made things worse? It would be the forum's own version of Endwalker's "Final Days". For everyone's sake, I really, really am fervently in favor of them taking the time to do this fix right.