Hmm. If you look higher up in that file, at line 398, there's some code that should be creating a VAO that is used later on. Is that code not being executed on your machine?
398 gets exectuted, but inside my renderOpenGL() callback I bind my own VAO to draw my mesh then I unbind (glBindVertexArray(0)) it after I draw my mesh. so by the time the program gets to , this part
Ok, I see. Well, I guess that if people are going to unbind it, the original one should be re-bound when it's needed. Your suggestion above would be leaky, but how about this, in drawComponentBuffer() around line 290