We all get these from time to time. Unfortunately Civil 3D is rather vague about what is causing this error.
^^^^ I HATE YOU ^^^^^
I can tell you empirically that the primary cause almost 99% of the time is a boundary that has been added to a surface somewhere along the chain that needs to be cleaned up.
A few people will suggest using things like MAPCLEAN and WEEDFEATURES to fix over complicated boundaries lines and breaklines and these methods do help. But they don’t always work.
A great method for fix this is to use the OVERKILL command. It will remove overlapping segments that are duplicates within a polygon. Commonly this comes from output from other software!
If you still have no luck try a method that I have used for years. Simply “STEPPEDOFFSET it out and then STEPPEDOFFSET it back in” maybe 0.5m or so.. (note: occasionally you may need to offset it back in 1 mm different, so back in 0.499m)
I have over exaggerated this to explain the issue, but here is what an offset does to a messy line with overlaps and duplicate vertices
Just whatever you do, don’t go extracting the triangles and re-adding them to a surface!!!!