Not quite sure what the cause of this is, but we've noticed occurrences of invisible text in cases where TMPSubMesh is used. In our case, that's because we're using Text Styles that require a different font. Deleting the submesh (which causes it to be immediately recreated) solves the issue temporarily - but it tends to occur again. We've noticed that in the debug inspector, the Sub Text Objects array has lots of null objects. Not sure what the exact cause is, but we've managed to make it occur consistently by having a prefab which contains a TMP UI object, opening the prefab, and then forcing the that text to refresh in edit mode. Refreshing in edit mode Update using [ExecuteAlways] is a common cause too - especially when you enter and exit prefab mode or play mode. I thought that SubMeshes were supposed to not be saved?