If I call glDrawBuffer(GL_NONE); the error goes away, but then nothing gets drawn to the frame buffer.
It seems some graphic cards require that you call glDrawBuffer(GL_NONE) if you have a FBO and only want to update the depth buffer. You say nothing gets drawn, by which I suppose your depth buffer wasn't updated?
Did you have to add a color buffer to get it working?