While this can be due to a number of issues, the most common cause for this problem is a conflict between your physical and virtual Xorg display.
By default, TigerVNC does not support multiple Xorg instances. As a result, the VNC server will be not be able to share a virtual display whenever you are using the desktop environment on your server. To fix this in Ubuntu, you can run sudo gnome-session-quit.