### Godot version

63f95c0e58e51ec2939e8b47803cb607fb35cadc

### System information

Windows 11

### Issue description

Using the following code:

```gdscript
extends StaticBody3D

@onready var shape_3d = $CollisionShape3D

func _ready():
	var convex_shape = ConvexPolygonShape3D.new()
	var points = PackedVector3Array()
	
	points.append(Vector3(0, 0, 0))
	points.append(Vector3(1, 0, 0))
	points.append(Vector3(0, 0, 1))
	points.append(Vector3(1, 0, 1))
	
	convex_shape.points = points
	shape_3d.shape = convex_shape
```

produces the correct result:

![image](https://user-images.githubusercontent.com/3036176/208936364-ae651b87-4be9-4fe0-8e5a-4cf17d937348.png)

but generates unnecessary errors:

![image](https://user-images.githubusercontent.com/3036176/208936226-0447814c-cfd4-4b41-8020-3bcd3dc11a44.png)

```
ERROR: Condition "p_new_capacity < capacity" is true.
   at: OAHashMap<unsigned __int64,int,struct HashMapHasherDefault,struct HashMapComparatorDefault<unsigned __int64> >::)
ERROR: Condition "p_new_capacity < capacity" is true.
   at: OAHashMap<unsigned __int64,int,struct HashMapHasherDefault,struct HashMapComparatorDefault<unsigned __int64> >::)
```


### Steps to reproduce

Check the attached project.

### Minimal reproduction project

[convex_polygon_test.zip](https://github.com/godotengine/godot/files/10278802/convex_polygon_test.zip)

min_edge = e;
					}
				}
#ifdef DEBUG_CONVEX_HULL
				printf("\n");
#endif
			}
			e = e->next;
		} while (e != p_start->edges);
	}
	return min_edge;
}
void ConvexHullInternal::find_edge_for_coplanar_faces(Vertex *p_c0, Vertex *p_c1, Edge *&p_e0, Edge *&p_e1, const Vertex *p_stop0, const Vertex *p_stop1) {
	Edge *start0 = p_e0;
	Edge *start1 = p_e1;
	Point32 et0 = start0 ? start0->target->point : p_c0->point;
	Point32 et1 = start1 ? start1->target->point : p_c1->point;
	Point32 s = p_c1->point - p_c0->point;
	Point64 normal = ((start0 ? start0 : start1)->target->point - p_c0->point).cross(s);
	int64_t dist = p_c0->point.dot(normal);
	CHULL_ASSERT(!start1 || (start1->target->point.dot(normal) == dist));
	Point64 perp = s.cross(normal);
	CHULL_ASSERT(!perp.is_zero());
#ifdef DEBUG_CONVEX_HULL
	printf("   Advancing %d %d  (%p %p, %d %d)\n", p_c0->point.index, p_c1->point.index, start0, start1, start0 ? start0->target->point.index : -1, start1 ? start1->target->point.index : -1);
#endif
	int64_t max_dot0 = et0.dot(perp);
	if (p_e0) {
		while (p_e0->target != p_stop0) {
			Edge *e = p_e0->reverse->prev;