If you view an animation frame for the first time and it's not in the OpenGL cache yet (this usually happens right after opening an animated document), the frame goes into the cache, but actually not viewed. This is specially annoying if you scrub on the timeline. This is a simple solution, drawing the frame without the cache.
There could be a complicated other solution, to catch the changed() signal when the cache is ready, this maybe slower, but much simpler. This cache miss happens rarely I think.
I also modified the warning message to show it only once during playback. It also slows down the playing otherwise...