Hi,
From what I understand it seems there is index pointing to non-existing point in your polygon.
When you want to draw some polygon you will need in most cases 2 buffers. One will be holding unique points (locations) that are used in your polygon. Second one will hold indexes pointing to point (from first buffer) that should be drawn. That second buffer can be larger than first one and it will decide how many polygons you will draw and also it will decide about order in which points are drawn. That way you don't need to hold duplicate of points when you draw polygon using the same point more than once (so instead of holding the same 2 x float location you hold just additional 1 int as index, that is space optimization also).
Now from this error it seems case is as follows (very simplified & pseudo code):
var points = [(0, 0), (0, 1), (1, 0)] #3 points with indexes 0, 1, 2
var indices = [0, 1, 2, 1, 2, 3] #6 indices - indexes pointing to points
for(index in indices):
if(indices[index] <= 0 || indices[index] >= points.size()):
#This error will be printed since value 3 in indices[5] is pointing to
#points[3], but points.size() == 3, so max index is 2!
print("ERROR!")
#Some other stuff
Above simplified pseudo-code only explains what exactly happens.
Now what may be reason? If you create polygon from code that could be most possibly the way you create your polygons. If you use editor to create polygons maybe that could be some internal engine bug. Hard to judge without more information (like how you create your polygons? Issue happened after some specific operation done or was present from the beginning?)