Yes - “varying” variables are interpolated between the vertices of the triangle, each varying requires a significant chunk of circuitry in the GPU and has to run for every pixel you draw - so there can’t be a really large number of them.
Most DirectX/OpenGL implementations limit you to 12 or 13 vec4’s…but on low end hardware, it’s possible that you might have a less. Since WebGL runs on top of the native DirectX/OpenGL right now, you’re going to hit that limit if you aren’t careful.
If you are using less than a vec4 (eg if you have two sets of vec2 texture coordinates) then you should try to pack them (so put one texture coordinate into the .xy part of the varying - and the other texture coordinate into the .zw part).
A clearer error message would have been nice though!