Making Sense of WaitForChild "Errors"

I’ve never once seen an error for infinite yield on WaitForChild in my own testing of my game, but when looking at my game I see it happen literally millions of times in the global error report.

What’s odd is that it happens for parts in a model that never get created or destroyed and are there by default. Ex. I have a model in Workspace named “Cameras” which has parts (ex. “X22”) that represent a given camera CFrame. Why would there be a WaitForChild error from a LocalScript on something that should always be loaded in the game? Does something happen when someone quits that causes the Workspace to be destroyed but the client to stay running? Does this have to do with the model’s ModelStreamingMode property?

Do you have StreamingEnabled on? If so, it’s possible that some players haven’t loaded the parts that the scripts are waiting for.

I do have it enabled. What setting on the model should I use to make sure it’s always loaded/loaded first? Or is that not how it works?

You can set the ModelStreamingMode property of the model to Persistent. This will affect the whole model (any parts and models within the model) & will load in the model with the rest of the game, disregarding any streaming.

Here’s more info on each streaming mode: ModelStreamingMode | Documentation - Roblox Creator Hub

Thank you so much, hopefully this will help reduce the WaitForChild errors in the error report!