C#, Creating a single mesh polygon problems

I’m trying to create a single polygon to fit each cell of a grid that is generated, But whenever I try to create it, it returns with:

The script:

 void UpdateMesh(GameObject obj)
{
    float halfX = cellBounds.x / 2, halfZ  = cellBounds.z / 2;
    Debug.Log("b: " + cellBounds + " -- TL:" + new Vector3(0 - halfX, 0, 0 - halfZ) + "-- BL: " + new Vector3(0 + halfX, 0, 0 - halfZ) + "-- BR: " + new Vector3(0 + halfX, 0, 0 + halfZ) + "-- TR: " + new Vector3(0 - halfX, 0, 0 + halfZ));
    MeshFilter mesh = gameObject.GetComponent<MeshFilter>();
    Vector3[] vertices = { new Vector3(0 - halfX, 0, 0 - halfZ), new Vector3(0 + halfX, 0, 0 - halfZ), new Vector3(0 + halfX, 0, 0 + halfZ), new Vector3(0 - halfX, 0, 0 + halfZ)};
    int[] triangles = { 0, 3, 2, 2, 1, 0 };

    mesh.mesh.vertices = vertices;
    mesh.mesh.triangles = triangles;
    mesh.mesh.RecalculateNormals();
}

Hi,

It may be because you need to start with a clean new mesh for your meshfilter:
Mesh mesh = gameObject.GetComponent<MeshFilter>().mesh;
Then use mesh.Clear(); to tell Unity to start from an empty mesh
Then assign vertices and triangles

You can also start with a:
Mesh mesh = new Mesh();
assign vertices & triangles
then assign it to the meshfilter:
gameObject.GetComponent<MeshFilter>().mesh = mesh;

You are reusing an existing MeshFilter. You will get this error if the triangles in the original mesh refer to indices beyond four. If you are sure the original mesh has more than four vertices, you can reverse the order and set the triangles first to solve this problem (or better yet clear the triangles before assigning the vertices).