Weird material behaviour after subdivision surface

This is the image when i dont have a subdivision surface modifier on the body

But i want to make the body more smooth, but after i add the subdivision surface modifier the black material get overrun by the white material.

How can i prevent this from happening?

More than likely a topology issue of the way the mesh was extruded inwards or outwards when created.

This is how my mesh looks like, it doesnt matter if i add extra vertex towards the center, the material does what he wants and does not follow the vertex i applied it to like it is shown in the next picture

The subdivisions need to be supported with an extra edge loop or creasing. And that’s not a good subdivision pattern, even though it’s on a flat surface. The n-gon is concave and splitting concave polygons gives a better pattern for it.

I think a simple solution is to add an edge loop around to constrain the subdivision

Just crease that inner loop that surrounds that crazy ngon, and do the same for the other side of the gibson les paul as well if needed.

I fixed it with a different subdivision pattern, thank you! this is the end result