In my work I have faced this error many times, in most cases it can be eliminated by importing meshes into Unreal by turning off one value. As I understand it happens because the model has very thin polygons and the Unreal removes normals value for optimization (it perceives the model as a highpoly).
Sometimes there are cases when this doesn’t help and normals are still broken. I encountered a case where I need to triangulate a model in engine and bake it in Marmoset and later paint it in Substance, in which case everything is ok in engine and Marmoset, but normals are recalculated when importing into Substance. This happens because of geometry errors. I noted several reasons for this, such as lamina faces, nonmanifold geometry, zero-value edges, and isolated vertexes. These errors can be found with Mesh Cleanup and the Checkmate script. Good luck and clean meshes, everyone!