See the vids below that shows the problem.
i was texturing in texture paint mode using the image named "Face X3.png". after heavy tweaking i decided to save the texture into different texture and name "Face X4.png". The problem was whenever i changed the texture in the image texture node the name is still "Face X3.png", even though clearly i was using "Face X4.png" My model also rendered correctly with the texture "Face X4.png".
This problem sometime exist since version 2.7x, i think it was some problem with the image saving feature after using the Blender texture paint mode.