While using StreamingEnabled, if a Model’s PrimaryPart is streamed out the Model’s PrimaryPart is set to nil. If that PrimaryPart is streamed back in it does NOT reset itself on the Model so the Model’s PrimaryPart remains nil indefinitely upon being streamed back in. (on the client)
Should be able to reproduce easily by setting PrimaryPart on a model. Moving model far enough away to stream out. Then moving back in. PrimaryPart won’t be reset so any LocalScripts that reference it will error. However, it may be difficult to reproduce on systems with large amounts of memory or if the game isn’t bringing in enough stuff to get the part to actually stream out. On an IPad2/3 which is what I was using to test for Pet Island, it was very easy to get it to happen.
I got around it for now by just finding the PrimaryPart by name when needed but its kinda hacky to do that everywhere.