no, I had a bug and I could see I was setting the ParentUID to a valid value, but at runtime it was null. I couldn't find where else I was setting it.
I recently moved a bunch of code to #includes to be reused and I thought maybe it was something I was doing there.
However, the problem ended up being that I forgot to add an object to this new layout and because that object never got created, when it spawned a new muzzleFlash it couldn't spawn anything because it didn't exist in the layout, so the next time I referenced a new muzzleFlash, it never was spawned so it picked the previously created muzzleFlash and put a null value (because I reference an object that didn't exist as the Parent) in the instance ParentUID.
so the problem came from moving to a new layout and reusing existing code.
But that's how debugging goes, you investigate one area to make sure you aren't doing something you overlooked and then from there you eliminate all the easy stuff. It was in that elimination phase that I was trying to rule out just assigning it a value I did not mean to... and the search function was making it really difficult.
I've been working on this game for about 19 months, so it's pretty large! I won't be done for another 10-12 months.
thanks for the help!