Dev Log Week 2026-10: Spring brings out the bugs

Just as I was wrapping up my Spring Cleaning of AirlineSim I got a couple of bug reports of the “what in the world is going on?” kind that kept me busy for the better part of last week.

Bug #1: Selecting a language without an airline in a game world causes an error

While fairly straight forward at the surface, this problem uncovered a whole series of subtle issues.

The actual bug here is that the preferred UI language is stored with a user account local to a game world before it’s being transmitted to our central account management system. But if you don’t have an airline yet, there also isn’t a local user. So changing the language fails in one part of the game and simply doesn’t do anything in another. I am working on a fix for that, but I’m making it a “proper one” that employs the new frontend framework for the UI refresh. This way, it uses the latest tech, replaces two outdated mechanisms in the legacy frameworks and makes it easier to handle language changes for players without a local user.

But as said, this is just the end of a chain of issues. The problem was discovered by a player who faced this issue when playing via Steam where they should have had the correct (supported) language selected from the moment they opened the game. So at the end of the day, I adjusted, rebuilt and republished the Steam clients for both AirlineSim and Prosperous Universe, I added an always visible language selector to the minimal Steam account management UI, I changed how AirlineSim determines the currently selected language and (as described above) I am still in the process of changing how in-game language selection works.

Bug #2: On Steam, Paine doesn’t work for Chinese players anymore

Related, as it had to do with internationalisation, but technically completely different: Chinese players were reporting that they couldn’t access Paine anymore, receiving a 400 error. A 400 stands for “bad request” which isn’t all that unusual. Think “entering an invalid value into a form”…this would be an “expected error” (like all 4xx errors), so it doesn’t usually show up in logs. So it took a moment to figure this one out. Turns out that the issue was caused by Steam handles of the affected players containing Chinese characters, which were passed to the game in the wrong encoding. While the pre-Spring Cleaning version of our web framework just swallowed and ignored this, the new one rejected the request. So as usual, after several hours of troubleshooting, the fix took about a minute :smiley:

So much for my original development plans for the week…and I already got one or two more interesting bugs lined up for week 11…so let’s see when this maintenance patch I’ve been planning to release for a while now will be ready to ship… :sweat_smile: