Update: Found this answer. Tested UpdateComponentData(USceneComponent*) in an empty project with a plain procedural mesh component. I generated grid mesh using blueprint and the navigation mesh works. Apparently the problem is that in my main project I create a child of UProceduralMeshComponent with my custom logic for generating the mesh and the UpdateComponentData call doesn’t work with a child even if I cast a child to UProceduralMeshComponent or USceneComponent. I fixed this issue by moving mesh generation code from a child to a separate class and using UProceduralMeshComponent that UE provides without any modifications. Now FNavigationSystem::UpdateComponentData() call on UProceduralMeshComponent works as intended.