I'm trying to read in a CSV with point data in lat/long, reproject the points to UTM with .projectAs(), and then create a buffer around each point using .buffer(). I'm using the geometry objects rather than operating on feature classes as mentioned in the Discussion section of the PointGeometry documentation.
When I try this procedure and then insert the resulting geometry into a feature class using an insert cursor, it fails with SystemError: <built-in method insertRow of da.InsertCursor object at 0x000001BACC5F1B70> returned NULL without setting an error. Digging further reveals that the buffer() operation returns an arcpy.arcobjects.mixins.GeometrySpecializationMixin._passthrough object instead of an arcpy.arcobjects.geometries.Polygon object.
If I don't project a lat/long point but instead just buffer it directly, buffer() returns the Polygon object as expected (see example code below) and inserts just fine. If I create a very small buffer on the lat/long point (point.buffer(0.000001)), project the resulting polygon to UTM, and then buffer the UTM polygon it returns a Polygon as expected as well.
Am I using .projectAs() on the lat/long points wrong?
In : import arcpy
In : wgs84 = arcpy.SpatialReference(4326)
In : utm = arcpy.SpatialReference(26912)
In : p = arcpy.Point(10, 10)
In : point = arcpy.PointGeometry(p, wgs84)
In : type(point)
In : utm_point = point.projectAs(utm)
In : type(utm_point)
In : point_buffer = point.buffer(10)
In : type(point_buffer)
In : utm_buffer = utm_point.buffer(10)
In : type(utm_buffer)