Why is my TMap value disappearing? or becoming INVALID

I have a TMap that keeps losing its value. I have a noise system that stores the noise modifications layer pointers in this tmap container. When I modify a noise module there’s a check to see if the layers name already exists in the container, if so then just update the noise module values, otherwise create a new noise module. I’m able to make several updates to the noise module before it final craps out. So it works until it doesn;t. When it crashes I can see the TMap value is “INVALID”. To find the values in the container I’m using the Find(Key) method. I can see in the hint popup that the pointer is only valid until the next change to any key, but this doesn’t make sense because it’s finding the key, it is the value (which is a NoiseModule pointer) that is no longer Valid. So maybe the noise module pointer is changing? I’m not even sure how to check that…

Of course, I found the answer here link text right after posting. Turns out I needed to add UPROPERTY() so that it wasn’t garbage collected. Problem solved.