Why do I get "[Synth 8-5788] Register in module is has both Set and reset with same priority" WARNING in vivado and how to solve it?
I have seen that error many times and I find it very annoying and very misleading.

You get it if you have a registers and you do not reset them all.Thus to solve it add "next_state" to your reset part.

The older versions of Xilinx had a better warning message which just said that not all values where reset.