Reproduction Steps
Currently, as of 1/12/22, it is possible for the Player:LoadCharacter() API to infinitely yield, if a backend web request errors or somesuch. This makes it impossible for the server to know that the request failed, and by extension, it cannot attempt to retry loading the player’s character. This results in game logic breaking, players being stuck in limbo while in the server, and more.
Reproduction steps
I was not able to reproduce the API hanging, but it was happening in production.
Expected Behavior
It is expected that LoadCharacter() will spit an error after some amount of time has passed (a timeout), either Roblox-specified or developer-specified (Player:LoadCharacter(Timeout)).
Actual Behavior Player:LoadCharacter() can infinitely hang in some cases where there was a backend Roblox failure, resulting in a hung server thread, with no chance of recovery.
Workaround
None
Issue Area: Engine Issue Type: Other Impact: High Frequency: Sometimes Date First Experienced: 2022-01-12 00:01:00 (-05:00)
I can confirm that :LoadCharacter() does yeld infinitely but I’ve only experienced it in studio testing.
100% of the time all other humanoid NPCs meshes (except for the head) and textures in workspace failed to load and were invisible.
only ONCE my character and every other NPC loaded exactly as I enabled the freecam (shift + p) and looked around, It’s a weird coincidence but if there are any loading updates connected to the camera moving or the freecam being enabled in studio then It’s worth investigating.
I thought this was a bug in my code until I realized it wasn’t This issue also happens to me (in-studio and in-game). This happened quite frequently yesterday (Jan 11th) and it seems okay today (Jan 12th).