Quick summary:
I ran into an issue when enabling scenery after the update yesterday where, when a certain package was enabled, startup would hang at the last loading screen, even after the blue bar itself had filled. Investigation showed that this is likely due to an apostrophe in the name of a scenery being unescaped in a request to the PlayFab API, causing the sim to enter a request loop.
Details:
[Note: I have also filed a ZenDesk ticket with fuller details and unobscured images, but I wanted to share this here for the community’s knowledge, too, while still preserving some privacy.]
After identifying some of the suspect scenery I started the sim and attached procmon to the flightsim.exe process to see what it was doing. I noticed a large amount of HTTPS traffic to and from a particular host with an AWS EC2 address. (see procmon.png, below). This seemed odd and slightly disturbed me.
I set up mitmproxy as my system proxy and used it to intercept the traffic in question. What I found was that the connections shown in procmon were tied to requests to a host at playfabapi.com, most particularly the address https://<expurgated>.playfabapi.com/Catalog/Search?sdk=XPlatCppSdk-3.24.200218. (see mitmproxy1.png)
Looking at the traffic, I noticed what seemed to be a pronounced looping pattern in the requests. Digging into each of the requests, I saw that the loop seemed to start again every time one particular request was made which resulted in an error response from the remote API.
The failure reported was due to a syntax error in the request, and tracing the location given in the error message, I found that it was due to an unescaped apostrophe in the name of one of my installed scenery packages (in this particular case, “wookie042-sinclair’s-secret-airstrip-sji6”). (see mitproxy2.png)
When I removed that one package from my community folder the problem went away. After further investigation, it seems like it is the name of the directory the package is in that matters; the title in the manifest file does not.
There doesn’t necessarily seem to be a full hang every time – if I have just that package enabled and start the sim I do usually manage to get in after a very long wait. If I have many others, though, it seems to never make progress, although perhaps it would if I left it sitting long enough.
Either way, this scenery is one I’ve had for a while and I haven’t experienced any notable problems before, so this feels like it’s a regression in the latest update.
Reproduction:
Simply put a package in your community folder with an apostrophe in the directory name. Start the sim and noticed the dramatically increased load times.
Images:
procmon.png
mitmproxy1.png
mitmproxy2.png