I was playing around with WEBGL and today and a encountered a problem with my cube\'s vertex normals .
I checked my code with a cube mesh from internet and it works
You could use a pass through Geometry shader to get around this.
A geometry shader takes in a shape and outputs another one (which can be of the same type). In your case it should just output the same triangle it takes as input. It should also calcualte the normal and send it over to the FS
Find code for the VS, GS and FS here: https://community.khronos.org/t/calculate-normals-in-vertex-shader/71573/4
For more info on geometry shaders check: "Visualizing normal vectors" here: https://learnopengl.com/Advanced-OpenGL/Geometry-Shader