resetGLStates() only bothers setting states that SFML itself "knows about" which only covers legacy states at the moment (up to circa OpenGL 1.2 + shaders). You will have to manually restore any "modern GL states" to their default values before rendering with SFML's graphics module. In this specific case, you aren't unbinding your VAO or VBO before trying to render with SFML's graphics module, which does not understand/use VAOs/VBOs.